2012-05-14 33 views
0

比方說,我在遊戲中有一個角色,其類是這樣的。從圖層中刪除動畫精靈幀?

 

@interface Player 
{ 
    CCSprite* stand; 
    CCAnimation* run; 
} 

-(void) playRunAction 
{ 
    // Create CCAnimate* object from CCAnimation object (run) 

    [self runAction:runAniate]; 
} 

-(void) playStandAction 
{ 
    stand.visible = YES; 
    [self stopAllActions]; 
} 
 

玩家有能力站立或跑步。

但是一個問題是,在調用playStandAction之後,立場動畫可見並且正在運行的動畫停止,但仍然存在一幀運行動畫! (現在您可以看到'stand sprite'和'運行動畫幀'之一在一起)。

如何讓運行動畫不可見?

P.s任何人都可以扔我一個更好的方式管理動畫在一個字符?隨着動畫的添加,這完全是災難性的。

回答

0
-(void) playStandAction 
{ 
//Make the animation object.visible = NO; here 
    stand.visible = YES; 
    [self stopAllActions]; 
} 

,並與參數restoreOriginalFrame

-(void) playRunAction 
{ 
    // Create CCAnimate* object from CCAnimation object (run) 
    //Make the animation object.visible = YES; here 
    stand.visible = NO; 
    [self runAction:runAniate]; 
} 
+0

感謝您的提示。這種作品。 – SeniorLee

0

使用方法,並把它傳遞yes

哪種方法,你都在呼籲建立CCAnimate對象,我不知道......

像這樣:

[CCAnimate actionWithAnimation:animation restoreOriginalFrame:YES]]; 

並且不要在圖層上調用runAction。我寧願你對精靈本身runAction ...

你並不需要隱藏和顯示2個不同的對象...

希望這有助於。 :)

+0

是的,我忘了在播放器類定義旁邊放置':CCSprite'。謝謝你的提示。我不知道restoreOriginalFrame在那裏。但是如果我在運行動畫中間調用stand方法呢?或者運行動畫是永久重複的? – SeniorLee

+0

我認爲你仍然會得到你的原始框架...只需通過調用方法交叉檢查一次... –