如何在 cocos2d 中一个接一个地排列精灵的动画?

Posted

技术标签:

【中文标题】如何在 cocos2d 中一个接一个地排列精灵的动画?【英文标题】:How do you order the animation of a sprite one after the other in cocos2d? 【发布时间】:2010-03-18 06:00:21 【问题描述】:

我有两个精灵。两者都应该有动画。但是 sprite1 应该先动画,在 sprite1 动画完成后, sprite2 动画应该开始。我可以对精灵说从某个时间开始运行并在某个时间结束吗?这是我的问题。请解释我该怎么做。 谢谢。

【问题讨论】:

【参考方案1】:

最简单的方法之一是通过 CCActions,特别是让 CCCallFunc 动作在您的代码中调用一个方法,以便在 sprite1 动画完成后立即启动 sprite2 动画。然后,您使用 CCSequence 创建 CCAnimate 然后 CCCallFunc 的动作序列。

// Lets say you have this as the CCAnimation for Sprite1
CCAnimation *sprite1Animation = [CCAnimation …]…

// then you setup the animate action:
// Suppose you have a method called -(void)startSprite2Animation  which starts the sprite2 animation :-)

id animateAction = [CCAnimate actionWithAnimation:sprite1Animation restoreOriginalFrame:NO];
id callSprite2Animation = [CCCallFunc ctionWithTarget:self selector:@selector(startSprite2Animation)];
id animateAndActionSequence =  [CCSequence actions: animateAction, callSprite2Animation,nil];

[sprite1 stopAllActions]; // If you have actions running
[sprite1 runAction:animateAndActionSequence];

// See more on Cocos2D actions here: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:actions

【讨论】:

谢谢你。我终于得到了一个答案。我将在我的程序中使用,如果有任何问题我会发布给你。 嗨,非常感谢。它按我的需要工作。我想你从今天开始就是会员。在这里过得愉快。再次感谢您。

以上是关于如何在 cocos2d 中一个接一个地排列精灵的动画?的主要内容,如果未能解决你的问题,请参考以下文章

当另一个精灵移动时如何检查精灵的边界? (Cocos2D)

如何检测另一个精灵攻击的精灵半径? (Cocos2D)

如何使用 cocos2d 在自顶向下视图中的精灵下放置阴影

如何使用多个精灵表? cocos2d/iPhone

如何在 cocos2d 中平滑移动精灵

在 cocos2d 精灵中访问纹理的矩形