2011-09-14 8 views
0

現在、私はinitメソッドで初期化する一連のスプライト(cardA、cardB、cardC)と一連のアクション(flipCardA、flipCardB、flipCardC)を持っています。Cocos2D:異なるスプライトのアニメーションを再利用

私は2つの不必要なアクションを取り除き、ただ1つのアクションflipCardを持っていますが、私は理解できず、何も見つかりませんでした: "どのように同じスプライトに同じアクションを適用できますか?

(唯一の3枚目のカードにアクションを適用する)私が持っているテスト:

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

ありがとう:

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

はので、私は現在、そのようなものを使用する必要があります。

答えて

1

複数のCCSpritに対して同時に1つのCCActionを使用することはできません。 runActionは、CCActionのtargetプロパティをrunActionが呼び出されるクラスオブジェクトに設定し、targetの以前の値をオーバーライドします。

あなたは[self.flipCard copy]を行うか、あなたがやっているようにやって続けることができます。または、あなたのカードクラスのメソッド内でフリップアニメーションの構築と実行を含む方がいいでしょう。たとえば、[self.cardA flipCard]としてください。今度は、フリップアニメーションの明示的なコピーを保持することについて心配する必要はありません。

毎回フリップアニメーションを再作成するコストはごくわずかですが、クラス変数で作成したCCSequenceを繰り返し使用することができます。

+0

私はクラスオプション([self.cardA flipCard])を選択しました。よりクリーンなソリューションのように思えました。 –

+0

優秀な選択。 –

関連する問題