一連のアクションを循環 するサブクラスがあるCCSprite's
ように、移動アクション中に位置を変更することは可能ですか?その一部は移動です。画面外に出ていないか確認してから、画面の反対側に直接移動してみます。したがって、左への移動の途中で画面外に移動すると、画面の右側から移動が終了します。CCMoveBy?
CCSprite
しかし、私が使用した場合setPosition:
、それは機能していないようで、移動アクションを終了するだけです。
一連のアクションを循環 するサブクラスがあるCCSprite's
ように、移動アクション中に位置を変更することは可能ですか?その一部は移動です。画面外に出ていないか確認してから、画面の反対側に直接移動してみます。したがって、左への移動の途中で画面外に移動すると、画面の右側から移動が終了します。CCMoveBy?
CCSprite
しかし、私が使用した場合setPosition:
、それは機能していないようで、移動アクションを終了するだけです。
CCMoveTo
(CCMoveBy
のサブクラス)は、オブジェクトの初期位置を格納し、更新のたびにその格納された位置にデルタを追加します。したがって、次の更新でオブジェクトが古いパスに戻されるため、他の位置設定は無意味になります。
コードを変更して、2つのCCMoveTo
アクションを使用できます。1つはオブジェクトを画面から外し、もう1つはオブジェクトを反対側から元に戻します。または、独自のアクションを作成することもできます(それがどのように行われるかわからない場合は、ソースコードを参照してください)。CCMoveTo
[sprite stopAllActions];
sprite.position = rightSideOfScreen;
[sprite runAction:newMoveToLeftAction];
それは私が期待するように機能するはずです。本当に「アクションを続行」する必要があり、新しいアクションを開始しない場合は、アクションが実行されていた時間を取得し、残りの時間で新しいアクションを開始する必要があります。