ゲームのメイン キャラクター用のスプライトがある「GameCharacter」クラスがあり、フレームとアニメーションを正しくロードしました。ワンタッチまたはスワイプジェスチャーでアニメーションを切り替えることができます。現在、アニメーション間を回転できます。
私のシーンのタッチ機能には、次のものがあります。
_mychar->RunAnimation(id);
ここで、id はアニメーションの ID で、触れるたびに変化する整数です。
メソッドは次のように機能します。
void GameCharacter::RunAnimation(int a){
_sprite->stopAllActions();
if(a<_animation.size() && a>=0){
_sprite->runAction( CCRepeatForever::create(_animation[a]));
}
}
_animation[]
オブジェクトが保持された単なるベクトルCCAnimate*
です (後で GameCharacter を破棄するときにそれらを解放します)。
私は 2 つのアイドル アニメーションを持っています。それらをランダムに切り替えたいです。たとえば、最初のアニメーションを 3 ~ 5 回、2 番目のアニメーションを 1 ~ 2 回「キューに入れ」、このように永遠に繰り返したいです... また、私はしたいですこの「無限のランダム アイドル アニメーション」を中断するには、キャラクターが終了するまで別のアニメーション (たとえば、ジャンプ アニメーション) を実行し、終了するとアイドル アニメーションに到達するようにします。うまく説明できたかどうかわかりませんが、ご理解いただければ幸いです。
アニメーションの ID は次のとおりです。
- 0-アイドル 1 (3 フレーム)
- 1-アイドル 2 (6 フレーム)
- 2ジャンプ(12フレーム)
- 3歩(12フレーム)
現時点では、キャラクターをそのアイドル状態 (アニメーション 0 と 1 の間のランダムな時間) にできるようにする必要があるだけで、タッチするたびに、ジャンプ アニメーションが 1 回実行され、最後に再びアイドル状態が開始されます...
歩行アニメーションは後で解きます。
前もって感謝します!