2010-11-02 20 views
4

如何创建一个缩放图像以适合输入范围的CCSprite,即如果我想要一个宽度= 70,高度= 50的CCSprite,并将该文件中的图像缩放到70,50。有没有一种简单的方法可以完成此操作,而不是根据图像尺寸计算比例因子,而不是计算所需的最终尺寸?如何创建一个CCSprite来设置边界?

回答

3

不知道是否有一个更简单的方法,但我只是做类似

  CGFloat myDesiredWidth=50; 
     CGFloat myDesiredHeight=70; 

     CGFloat startWidth=mySprite.size.width; 
     CGFloat startHeight=mySprite.size.height; 

     CGFloat scaleX=myDesiredWidth/startWidth; 
     CGFloat scaleY=myDesiredHeight/startHeight; 

     CGFloat finalScale=MIN(scaleX,scaleY); 
     mySprite.scale=finalScale; 

丢弃到上CCSprite一个类别,你就再也不用担心它

9

这里根据@Martin的答案,这是一个类别实现工作

@implementation CCSprite(Resize) 

-(void)resizeTo:(CGSize) theSize 
{ 
    CGFloat newWidth = theSize.width; 
    CGFloat newHeight = theSize.height; 


    float startWidth = self.contentSize.width; 
    float startHeight = self.contentSize.height; 

    float newScaleX = newWidth/startWidth; 
    float newScaleY = newHeight/startHeight; 

    self.scaleX = newScaleX; 
    self.scaleY = newScaleY; 

} 

@end 
+0

太棒了!谢谢。 – SpaceDog 2012-06-11 02:10:33