Cocos2d iphone Cocos2D:为不同的精灵重用动画

Cocos2d iphone Cocos2D:为不同的精灵重用动画,cocos2d-iphone,Cocos2d Iphone,目前我有一系列精灵(cardA、cardB、cardC)和一系列动作(flipCardA、flipCardB、flipCardC),我用init方法初始化它们 我想摆脱2个不必要的动作,只拥有一张动作动画卡,但我想不出,也找不到任何关于“如何将相同的动作应用于不同的精灵”的内容 我的测试(仅适用于第三张卡): 所以我现在必须使用这样的东西: [self.cardA runAction:self.flipCardA]; [self.cardB runAction:self.flipCardB];

目前我有一系列精灵(cardA、cardB、cardC)和一系列动作(flipCardA、flipCardB、flipCardC),我用init方法初始化它们

我想摆脱2个不必要的动作,只拥有一张动作动画卡,但我想不出,也找不到任何关于“如何将相同的动作应用于不同的精灵”的内容

我的测试(仅适用于第三张卡):

所以我现在必须使用这样的东西:

[self.cardA runAction:self.flipCardA];
[self.cardB runAction:self.flipCardB];
[self.cardC runAction:self.flipCardC];

谢谢。

您不能同时对多个CCSprite使用单个CCAction。runAction将CCAction的target属性设置为从中调用runAction的类对象,覆盖target的任何以前的值

您可以执行
[self.flipCard copy]
或继续像现在这样做。或者更好的方法是,在card类的方法中包含翻转动画的构造和执行——比如说
[self.cardA flipCard]
——然后调用它。现在,您不必担心保留翻转动画的显式副本


每次重新创建翻转动画的成本可以忽略不计,但您可以将创建的CCSequence保存在类变量中重复使用。

我选择使用类选项([self.cardA flipCard])。似乎是一个更干净的解决方案。
[self.cardA runAction:self.flipCardA];
[self.cardB runAction:self.flipCardB];
[self.cardC runAction:self.flipCardC];