我已经创建了一个包含我将在课堂上使用的所有图像的图集。如果这是从图像创建的精灵,我会像这样创建它
mySprite = [CCSprite spriteWithFile:@"white.png" rect:frame];
“white.png”是一个 1x1 像素的图像,我正在拉伸它以覆盖整个 CCSprite 大小,由该 API 上的 rect:frame 定义。
但为了优化 I/O 和内存,我将 white.png 放在了图集中,我的想法是使用
mySprite = [CCSprite spriteWithSpriteFrameName:@"white.png"];
但这将创建一个 1x1 像素的精灵。所以,我的想法是创建一个类别来用这些行扩展 CCSprite
@implementation CCSprite (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;
}
所以我可以这样做
mySprite = [CCSprite spriteWithSpriteFrameName:@"white.png"];
[mySprite resizeTo:frame.size];
并且 1x1 精灵将被拉伸以覆盖我想要的大小。
问题是这不起作用。
任何线索?谢谢。