ここに私のシーンの問題があります: メニュー シーンから始めて、ゲーム内シーンに入り、キャラクターが死んだら、再びメニュー シーンに行きます。
[[CCDirector sharedDirector] replaceScene:[MainMenu scene]];
と
[[CCDirector sharedDirector] replaceScene:[InGame scene]];
ゲームに負けた後、ゲームに戻ろうとすると、SpriteSheet が次のエラーでクラッシュします。
'CCSprite is not using the same texture id'
アニメーションを開始する方法は次のとおりです。
- (void) initSprite:(NSString *)plist andTexture:(NSString *)texture_ {
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:plist];
spriteSheet = [CCSpriteBatchNode batchNodeWithFile:texture_];
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for (int i=1; i<=12; i++) {
[walkAnimFrames addObject:
[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
[NSString stringWithFormat:@"%d.png",i]]];
}
CCAnimation *walkAnim = [CCAnimation animationWithSpriteFrames:walkAnimFrames delay:0.05f];
texture = [CCSprite spriteWithSpriteFrameName:@"1.png"];
walkAction = [CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim]];
[texture runAction:walkAction];
texture.position = position;
texture.tag = HeroType;
[spriteSheet addChild:texture];
[self addChild:spriteSheet];
}
スプライト シートにテクスチャを追加すると、クラッシュが発生します。
[spriteSheet addChild:texture];
問題はテクスチャの割り当て解除にあると思います..
ARCは使いません。