如何创建CCSprite来设置边界?

时间:2010-11-02 06:39:52

标签: cocos2d-iphone sprite bounds

如何创建一个缩放图像以适应输入边界的CCSprite,即如果我想要一个宽度= 70且高度= 50的CCSprite,并将文件中的图像缩放到70,50。除了从图像的大小计算比例因子与期望的最终大小相比之外,还有一种简单的方法吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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的类别中,您再也不用担心了