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

时间:2011-09-14 02:13:49

标签: cocos2d-iphone

目前我有一系列sprite(cardA,cardB,cardC)和一系列动作(flipCardA,flipCardB,flipCardC),我在init方法中初始化。

我想摆脱2个不必要的动作,只需要一个动作flipCard,但我无法弄清楚,也找不到任何东西:“我怎么能对不同的精灵应用相同的动作。”

我的测试(仅对第三张牌采取行动):

[self.cardA runAction:self.flipCard];
[self.cardB runAction:self.flipCard];
[self.cardC runAction:self.flipCard];

所以我现在必须使用类似的东西:

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题