0

それが私の目標です。私には、人物を作る複数のスプライトがあります。最初のスプライト( n個のスプライトの配列。nはセグメントの数)がヘッドであり、他のスプライトはそれに続く必要があります。したがって、頭が角度を変えてから(頭が指している方向に)移動する場合、他のスプライトは、ヘビ/ワームのように頭に従わなければなりません。私はcocos2Dでこれを行っていますが、私はcocos2Dを知っているので、概念がないと思うのでそれほど関係ありませんが、これは問題ではありません(フレームワークではありません)。それで、どうすればそれを行うことができますか?他のスプライトはどのようにして頭を完全に追うことができますか?ゲームの例は、AppStoreのDeathWormまたはSuperMegaWormです。

必要に応じて、使用しているコード(動作が悪い)と結果の画像を投稿できますが、これが必要かどうかはわかりません。

ありがとう。

4

3 に答える 3

1

各セクションのすべての位置を arraylist / vector に格納するだけです。on Draw では、ゲーム プレイに基づいて次の頭の位置が計算され、リスト内の最も古い (pos==0) アイテムが削除され、リスト内の位置にスプライトが描画されます。

これがアレクセイの答えに似ているように思われる場合は申し訳ありませんが、これはより単純な実装であると思います。

于 2012-08-20T14:40:33.557 に答える
0

人物を作成するすべてのスプライトの位置を手動で設定する必要があります。新しい位置は、繰り返し呼び出されるスケジュールされたメソッド内で計算および設定する必要があります。

sprite.position = ccp(newX,newY);

こちらも参照してください: Cocos2D set sprite position within another sprite

于 2012-08-20T12:24:05.600 に答える
0

頭を含む生き物のすべてのセグメントの座標の配列を持っています。

(方向を変えずに)まっすぐに移動する必要がある場合は、配列の値をシフトして、テール(最後の)セグメントが隣接するセグメントの座標を取得し、そのセグメントがその前のセグメントの座標を取得するようにします。これは、方向ベクトル d だけインクリメントされた古い座標に等しくなります。

dx dy direction  
 0 -1 up
 0 +1 down
-1  0 left
+1  0 right

方向を変更したい場合は、方向ベクトルを適切に変更してから、同じ配列シフトとヘッド座標の更新を行います。

于 2012-08-20T12:47:38.130 に答える