我有我使用场景,并创造了多个CCAnimation行动,以适用于所有使用单个CCSpriteFrameCache sharedSpriteFrameCache一个CCSprite。虽然一切正常,我可以在动画之间切换,但我觉得自己做得不好,希望通过检索CCSprite上的正在运行的动作来简化我的代码,以便在运行下一个动作之前单独停止它们它。如何检索操作从雪碧在cocos2d
,以帮助创造一些背景,让我们假设以下情况:
我们有一个名为mySprite上CCSprite
我们步行到正确的定义3个独立的CCAnimation行动,步行到左边,并坐着期待着分别称为:actionAnimWalkRight,actionAnimWalkLeft和actionAnimSitForward。
- 我们希望有精灵步行到权当有人触碰mySprite上的屏幕右侧,步行离开时有人触碰左mySprite上的屏幕,当有人触及mySprite上坐下。
我使用做到这一点是如下的方法:
- 将CCSprite在场景中的孩子。
- 告诉精灵运行一个动作:[self runAction:actionWalkRight];
- 当我想改变行动人触摸后,我有一个方法叫stopAllAnimationActions我打电话之前,我申请的是停止所有动画动作无论怎样的运行新动作。基本上列出了我定义的所有CCAnimation/CCActions,并且因为我不想使用stopAllActions而单独停止每个CCAnimation/CCActions。如下所示:[self stopAction:actionWalkRight]; [self stopAction:actionWalkLeft]; [self stopAction:actionSitForward];
- 然后我应用新的动画使用上述方法闪光后:[自runAction:actionWalkLeft];
虽然这个工作,它似乎是一个糟糕的设计,停止我知道不运行的项目,因为我不知道到底是什么运行。因此,寻找建议和最好的建议做法是在非常复杂的情况下做这样的事情,所以跟踪每一种可能的情况都很困难。对于任何反馈,我们都表示感谢。
谢谢Saikat!这很有帮助,因为我没有想过使用通用标签来检索它。这是一个很好的建议。 – XBXSlagHeap 2012-04-20 16:53:58
不客气。乐意效劳。 – Saikat 2012-04-21 01:37:31