2012-02-06 82 views
0

對於我的應用程序,我試圖實現一個角色,他在走路時顯示行走動畫,並在空中顯示跳躍動畫。自定義動畫類

使用Cocos2D,我創建了一個簡單的動畫。問題是我正在使用CCRepeatForever,並且我似乎無法停止動畫或將其關閉後切換它。

Steffen Itterheim的書在關於精靈的章節中討論了一些動畫。他創建動畫的方式是將多個精靈幀添加到CCAnimation對象,然後使用CCRepeatForever運行它。

我目前正在尋找兩種可能性: 1)創建多個精靈並將它們添加到CCArray,然後遍歷多個精靈。 2)找到CCRepeatForever的替代解決方案,找到停止動畫或切換到其他動畫的方法。

編號爲1的問題是,我無法弄清楚如何將選擇性精靈渲染到舞臺上。它似乎是在屏幕上添加一個精靈的唯一方法是使用[self addChild:mySprite];如果我想在多個精靈之間切換,這是限制和問題的。有沒有辦法選擇性渲染一個精靈? 編號爲2的問題是,似乎沒有CCRepeatForever的替代方法,其他動畫類不足以運行動畫。

謝謝!

+0

你可以阻止它停止動畫,你需要給它一個標籤/名稱或什麼的,我只是不能在此刻記住什麼。 – 2012-02-06 21:33:04

回答

0

假設您爲以下操作指定標籤。

CCSprite *sprite = [CCSprite spriteWithFile:@"image.png"]; 
CCRotateBy *spinAction = [CCRotateBy actionWithDuration:1 angle:90]; 
CCRepeatForever *spinForever = [CCRepeatForever actionWithAction:spinAction]; 
[spinForever setTag:ANIMATION_TAG]; 
[sprite runAction:spinForever]; 

您可以通過調用

[sprite stopActionByTag:ANIMATION_TAG]; 
+0

此外,您還可以使用 - (空)stopAction:\t \t(CCAction *)\t行動\t 去除運行動作列表中的動作 或 - (無效)stopAllActions \t \t \t 取消所有行動正在運行的動作列表 – Setrio 2012-02-06 22:02:56

+0

有一天這個答案將被接受。我有一個夢想。 – DaveIngle 2017-06-10 02:35:35