Doodle Jumpのようなゲームを作りたいです。私はlibgdxとBox2dを使用しています。ボールを常に同じ高さでバウンドさせる方法についてアドバイスが必要です。
ボールのボディ復元を1に設定して、常にジャンプできるようにしましたが、ブロックでジャンプすると、「インパルス」が小さくなります。また、衝突を検出してインパルスを加えようとしましたが、うまくいきませんでした。
毎回同じ高さにボールをバウンドさせるにはどうすればよいですか?
Doodle Jumpのようなゲームを作りたいです。私はlibgdxとBox2dを使用しています。ボールを常に同じ高さでバウンドさせる方法についてアドバイスが必要です。
ボールのボディ復元を1に設定して、常にジャンプできるようにしましたが、ブロックでジャンプすると、「インパルス」が小さくなります。また、衝突を検出してインパルスを加えようとしましたが、うまくいきませんでした。
毎回同じ高さにボールをバウンドさせるにはどうすればよいですか?
回答:
また、このために物理エンジンを使用する必要がないかもしれないというミックスに投入したいと思います。ゲームの衝突の処理方法(具体的には、衝突応答)によっては、完全に制御できる非常に単純なバウンディングボックスシステムを作成できる場合があります。実際、「落書きジャンプ」スタイルのゲームではさらに簡単です。落書きジャンプのシナリオは、box2dで衝突を検出して衝突を無効にするかどうかを検討するのではなく(たとえば、プラットフォームを下からたたくなど)、落書きジャンプシナリオの方がはるかに単純です。ボールが「下降」している(yが減少している)場合、ボールがプラットフォームのy値を通過し、プラットフォームの左/右境界内にあると、衝突します。本当に「複雑な」唯一のことは、あなたがたどる放物線状の飛行経路です。http://en.wikipedia.org/wiki/Parabola#Equation_in_Cartesian_coordinates)。
応答を必要としない(ボーナスを押すなど)世界中の他のアイテムとの衝突は、境界ボックスだけで簡単に解決できます。
Box2Dは驚異的ですが、単純な要件がある場合、多くの場合、やり過ぎです。