コンソールで上記の警告を表示してクラッシュするアプリケーションを作成しています。
2 つのスプライトがあります。
Train=[CCSprite spriteWithFile:@"train.png"];
[self addChild:train z:0 tag:1];
AlphaImage=[CCSprite node];
AlphaImage.position=ccp(245,155);
[Train addChild:AlphaImage z:1 tag:2];
他の方法では、アニメーションを使用して AlphaImage を初期化しています。
CCSpriteFrameCache *frameCache1 =[CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache1 addSpriteFramesWithFile:plist1];
CCSpriteBatchNode *danceSheet1 = [CCSpriteBatchNode batchNodeWithFile:png1];
[self addChild:danceSheet1];
NSMutableArray *animFrames1 = [NSMutableArray arrayWithCapacity:frame[x]];
for(int i = 1; i < frame[x]+1; i++) {
NSString *namef1=[NSString stringWithFormat:@"%@%i.png",alpha1,i];
CCSpriteFrame *frame1 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:namef1];
[animFrames1 addObject:frame1];
}
CCAnimation *anim1 = [CCAnimation animationWithFrames:animFrames1 delay:0.3f];
CCAnimate *animN1 = [CCAnimate actionWithAnimation:anim1];
CCRepeatForever *repeat1 = [CCRepeatForever actionWithAction:animN1];
[AlphaImage runAction:repeat1];
zwoptex を使用して、plist とテクスチャ アトラスを作成しました。
電車が行き来すると、アニメーションの plist とテクスチャ アトラスが変化します。しかし、4 ~ 5 回実行すると、アプリケーションがクラッシュします。また、新しいアニメーションが AlphaImage に来る前に、すべてのフレームとテクスチャを解放しました。これを使用しました。
[CCSpriteFrameCache purgeSharedSpriteFrameCache];
[CCTextureCache purgeSharedTextureCache];
アプリケーションに hd 画像を使用しています。多くのドキュメントを調べましたが、次のように提案されています。
[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames];
[[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];
ただし、コンソールでは、これらの行を使用したフレームの削除については何も表示されません。私が間違っていることはありますか?