因此,這裏是我的場景問題:我從菜單場景開始,然後進入InGame場景,當角色死亡時,我再次進入菜單場景,所有這些使用:重新啓動場景時發生崩潰
[[CCDirector sharedDirector] replaceScene:[MainMenu scene]];
和
[[CCDirector sharedDirector] replaceScene:[InGame scene]];
與錯誤輸掉了比賽,並試圖回到比賽,我SpriteSheet崩潰後:
'CCSprite is not using the same texture id'
這裏是我的init動畫:
- (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發生崩潰:
[spriteSheet addChild:texture];
我認爲,問題來自於質感的釋放..
我不使用ARC。
您在這裏使用精靈表是多餘的。對於使用initSprite創建的每個精靈,都會爲該精靈創建一個精靈批處理節點。無論是否有批處理節點,您最終都會爲每個精靈繪製一個繪圖調用。批次不會加快動畫速度,它們可以加速使用相同紋理渲染多個精靈,從而可以在一次繪製調用中顯示10個或數百個相同的精靈。 – LearnCocos2D
我明白了,我正在用它來繪製一個正在運行的角色的動畫。我有一個精靈12張精靈圖(http://oi42.tinypic.com/2s6oe3n.jpg),你認爲最好的方法是什麼? – thegameg