クラスで使用するすべての画像を含むアトラスを作成しました。これが画像から作成されたスプライトである場合、次のように作成します
mySprite = [CCSprite spriteWithFile:@"white.png" rect:frame];
「white.png」は、API の rect:frame で定義されている CCSprite サイズ全体をカバーするために拡大する 1x1 ピクセル イメージです。
しかし、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 スプライトは、必要なサイズをカバーするために引き伸ばされます。
問題は、これが機能していないことです。
手がかりはありますか?ありがとう。