0

Level Helper と SpriteHelper を使用して、スプライト、画像、レベル、さらに重要なアニメーションと物理を作成しています。

物理学とは、衝突検出に使用されるシミュレーターで確認できる debugdraw を意味することに注意してください。

スイマーを作成し、これに物理を追加しました。スイマーがプールの周りを移動するとき、物理学がスイマーに追従するようにコードを実行します。これで、スイマーをアニメートしたり、足を蹴ったりするようになりました。ゲームをロードすると、アニメーションの最初のスプライトだけが物理演算のアウトラインになります。そのため、スイマーの足が蹴っているのが見えますが、物理演算の debugdraw メッシュも同様にアニメーション化されません。たとえば、私のスイマーが足を失うまで、これは実際には問題ではありません (私が知っている奇妙なゲーム)。アニメーションを足のないスイマーに変更しましたが、物理メッシュにはまだ足が表示されています。そのため、足があった場所で何かと衝突することはありますが、そうすべきではありません。これは理にかなっていますか?

新しいアニメーションの物理を更新する方法はありますか、それともスイマー全体を削除して新しいものを描く必要がありますか?

どんな助けでも素晴らしいでしょう。ありがとう

4

1 に答える 1

0

スプライトは両方の状態で同じ box2d メッシュを使用するため、これは理にかなっています。スプライトを変更した後に別のコリジョン動作が必要な場合は、別の (小さい) メッシュ ボディを割り当てる必要があります。

cocos2d 側でも、スプライトには新しいアニメーションを含む同じコンテナー ボックスがまだあることに注意してください。

SpriteHelper 機能を引き続き使用するには、2 つの異なるスプライト ボディ セットを作成する必要がある場合があります。

さて、ゲームプレイに関しては、私の意見では、とにかく脚に衝突があってはならないということです. それらは動いているので、プレイヤーはそれらが衝突していなくても不思議ではありません。脚のないメッシュ ボディを使用して、両方のスプライトに使用できます。ゲームプレイ機能としてさまざまな衝突を行いたい場合を除きます (小さな洞窟に収まるようにプレイヤーに足を切断する選択肢を与えるなど)。

于 2013-01-11T08:17:07.190 に答える