2013-08-24 58 views
0

因此,這裏是我的場景問題:我從菜單場景開始,然後進入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。

+2

您在這裏使用精靈表是多餘的。對於使用initSprite創建的每個精靈,都會爲該精靈創建一個精靈批處理節點。無論是否有批處理節點,您最終都會爲每個精靈繪製一個繪圖調用。批次不會加快動畫速度,它們可以加速使用相同紋理渲染多個精靈,從而可以在一次繪製調用中顯示10個或數百個相同的精靈。 – LearnCocos2D

+0

我明白了,我正在用它來繪製一個正在運行的角色的動畫。我有一個精靈12張精靈圖(http://oi42.tinypic.com/2s6oe3n.jpg),你認爲最好的方法是什麼? – thegameg

回答

1

緩存中可能有一個「1.png」,它對應於在退出重新啓動序列之前創建的另一個動畫。也許你想在重新啓動之前清除精靈幀緩存(可能還有很多其他的東西)。

我完全避免「1.png」到「NNNN.png」,因爲很可能所有的動畫都會有它們。相反,我用的東西,如:

walk_classKey_upNNNN.png {上,下,左,右,閒置,跳躍......和任何其他地圖的立場,我需要) fight_classKey_strikeNNNN.png {擊,傷害,死了的例如)

的ClassKey是{戰士,盜賊,......等等......無論唯一的戰士型我)

和我的名字我的Plist /紋理相同

walk_fighter_up-hd.plist(使用紋理打包器,plist嵌入紋理名稱)。 fight_rogue_cheapShot-hd.plist(cheapShot是我當前遊戲中的流氓技能之一)。

+0

這是緩存,謝謝。剛剛添加了[[[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames];'並且它可以工作。 NNNN.png對應什麼? – thegameg

+0

框架名爲1.png,2.png,3.png ... NNN.png。 – YvesLeBorg