0

cocos2d V3.x プロジェクト (SpriteBuilder V1.2.1) に取り組んでいます。現在、このアクション シーケンスを CCSprite で遅延させて実行しようとしています。問題があるのか​​、CCActionSequence がどのように機能するのか理解していないだけなのかはわかりません。

アクション 'a' を開始し、終了したら (2 秒後) 遅延 (5 秒) してから、両方の関数が呼び出されます (アクション 'c' と 'd')。しかし、シミュレーターでは順序が間違っており (「d」は「c」の前に呼び出され)、「a」が回転を開始してから約 1 秒後に呼び出されます。

私は何か間違ったことをしていますか?これが CCActionSquence の実際の動作である場合、前の段落で説明した方法で動作させるにはどうすればよいでしょうか?

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360];
CCAction *b = [CCActionDelay actionWithDuration:5];
CCAction *c = [CCActionCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)];
CCAction *d = [CCActionCallFunc actionWithTarget:self selector:@selector(endTurn)];
[[_arregloBolitas objectAtIndex:random] runAction:[CCActionSequence actionWithArray:@[a,b,c,d]]];

ありがとう!

4

1 に答える 1

0

アクション 'c' と 'd' を に入れるCCSpawnと、それらは同時に実行されます。CCDelayTime最後の 2 つのアクションを遅らせるためにも使用します。

これを試してください

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360];
CCAction *b = [CCDelayTime actionWithDuration:5];
CCAction *c = [CCCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)];
CCAction *d = [CCCallFunc actionWithTarget:self selector:@selector(endTurn)];
[[_arregloBolitas objectAtIndex:random] runAction:[CCSequence actions: a, b, c, d, nil]];

私はあなたの環境を持っていません。少し変更する必要があるかもしれません。ありがとう。

于 2014-10-20T00:27:50.157 に答える