0

短い話ですが、下に移動したいスプライトがあります。ループで CCMoveTo アクションを使用します
。問題は、プレビュー アニメーションが終了するまで「待機」することができない、または見つからなかったことです。次のアニメーションを開始します。
主な問題は、スプライトの数がわからないため、固定数のアクションで CCSequence を使用できないことです。

int GemsToRemoveHolderCount = GemsToRemoveHolder->count();

    for(int i=0;i<GemsToRemoveHolderCount;i++)
    {

            Gem* gemNew = (Gem*)GemsToRemoveHolder->objectAtIndex(i);
            CCPoint posNew = gemNew->getGemPos();
            CCMoveTo *moveGemDownAction = CCMoveTo::create(0.3f,posNew);
            gemNew->runAction(moveGemDownAction);

    }
4

2 に答える 2

2

CCDelayTimeアクションを使用できます。シーケンス内のどこに配置するかに応じて、アクションの前または間に遅延を導入するだけです。もちろん、これは、待機に必要な時間を計算できる場合にのみ実行可能です。

別の解決策は、サブクラス化して独自のアクションを作成することです。これには時間がかかりますが、実際に何が起こっているかをより詳細に制御できます。

于 2013-09-17T10:03:22.440 に答える
1

CCCallFunc アクションを移動アクションと連続して使用して、アニメーション終了コールバックを作成できます。そこで、アニメーションを再度実行する必要があるかどうかを確認できます。1 つの CCMoveTo アクションと CCCallFunc アクションのみのシーケンスごとに実行します。

于 2013-09-17T08:22:15.543 に答える