簡體   English   中英

如何在cocos2d中的同一子畫面上實現兩個不同的動畫

[英]how to implement two different animations on same sprite in cocos2d

我對在cocos2d中使用動畫感到困惑...我有一個精靈,它具有3種類型的動畫,例如笑,笑,哭和眨眼的笑臉...而且每個動畫都有單獨的精靈表。我將如何在同一個精靈上使用這些動畫?有人可以幫助我嗎?

問候,

蘇拉傑

將所有動畫放在同一塊Sprite工作表上會容易得多,因為,如果您的Sprite正在使用CCBatchnode來執行其draw方法,則可以將其作為子項從一張紙上刪除,然后將其讀取到另一張紙上。

在CCSprite子類中,將一些CCAction設置為實例變量。

在初始化方法中,編寫這些動作並將其存儲到實例變量中。

然后,當您要使用動畫時,告訴精靈運行它。

例如

NSMutableArray *smileFrames = [NSMutableArray array];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile.png"]];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile2.png"]];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile3.png"]];


CCAnimation *smileAnim = [CCAnimation 
                         animationWithFrames:smileFrames delay:0.2f];

self.smileAction = [CCSequence actions:
                   [CCAnimate actionWithAnimation:smileAnim restoreOriginalFrame:NO],
                   [CCCallFunc actionWithTarget:self selector:@selector(smileFinished)],
                   nil];

然后,您只需使用..

[sprite runAction:smileAction];

我已在動畫的末尾添加了CCCallFunc,因為您可能希望在完成后恢復為空閑動畫。

取消釋放精靈后,不要忘記釋放任何保留的動作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM