Cocos2d ゲームの開発はゆっくりですが着実に進んでいますが、動くプラットフォームの作成に行き詰まっています。
主人公は物理演算と衝突検出を必要とするため、シマリスの形/体です。シマリス スペース内の体の量を削減するために、TMXTiledMap を反復処理するクラスを作成しました。だからこんな地図で
----------
--------x-
-xxx----x-
----------
5 つの個別のボディ (四角形) の代わりに、2 つのボディがあり、1 つは幅が 3 タイル、もう 1 つは高さが 2 タイルです。
どのタイルが移動プラットフォームの一部であるかを識別し、必要に応じてタイルを移動するコードを動作させることができました。
ただし、これを適切に機能させるには、ボディをタイルと一緒に移動する必要があります。そして、これは私が立ち往生しているところです。体は静的な質量なので...
platformShape->body->p = cpv(x,y);
何もしません (これは予想される動作だと思います)。
しかし、それらの質量を静的以外の値に設定すると、すべての物理が作用し、物体が期待どおりに動作しないか、見方によっては完全に動作します。彼らは不規則に動き、別の体 (例: 主人公) にぶつかると回転します。私が求めているのは、特定の方向にスムーズに移動する、典型的なプラットフォーム ゲームに見られる典型的なタイプの移動プラットフォームです。
私の質問は; 誰かが以前にこのようなものを実装したことがありますか?あなたのテクニックは何でしたか? または、このようなものを実装するとしたら、どのようにしますか?
関連するコードはこちらです。何よりも概念的な誤解だと思うので、ペーストビンに入れました。