MT4Jを使ったアプリを開発したい。実装したいシナリオはこんな感じ
- 画面上の複数のボール。
- ボールはタッチでどこにでも配置できます。
上記のポイントが実装されましたが、私が直面した最も重要なポイント 3. 重力はコンテナの中心にあるため、ボールは中心に向かって引き寄せられます。
どうすれば重心を実装できますか? そのボールは中心に向かって引き付けられました。
私が知りたいことを理解していただければ幸いです。わからない場合はお知らせください。詳細を共有します。
MT4Jを使ったアプリを開発したい。実装したいシナリオはこんな感じ
上記のポイントが実装されましたが、私が直面した最も重要なポイント 3. 重力はコンテナの中心にあるため、ボールは中心に向かって引き寄せられます。
どうすれば重心を実装できますか? そのボールは中心に向かって引き付けられました。
私が知りたいことを理解していただければ幸いです。わからない場合はお知らせください。詳細を共有します。
もちろん。最初にお勧めするのは、MT4j に付属しているサンプルの「Physics Playground」アプリケーションを確認することです。これにより、物理的なボディをコンポーネントに割り当てる方法と、jBox2d を使用して物理シミュレーション エンジンをセットアップする方法が示されます。しかし、私はあなたがすでにそれを行っていると感じています。私はただ確認したかっただけです:)
それで、あなたの質問に戻ります。問題を重力ではなく関節で考えるべきです。ジョイントを使用すると、あるコンポーネントが別のコンポーネントの物理的な動作に影響を与えることができます。それがあなたが探しているものです。したがって、コンテナの中央に非表示の静的で衝突不可能なコンポーネントを作成してから、このコンポーネントにジョイントを追加 (および削除) して、画面上を移動するボールを使用してください。
具体的には、Box2d マニュアル ( http://box2d.org/manual.pdf、セクション 8.5) のディスタンス ジョイントを確認してください。距離が 0 のディスタンス ジョイントを作成し、減衰比と周波数をいじって、探している動作を取得します。
また、jBox2d で問題が発生する場合は、最新バージョンへのアップグレードを検討してください。動作させるには、mt4j ソース コードで少しデバッグを行う必要があるかもしれませんが、より安定した物理エンジン、より多くの機能、および実際にコードに対応する最新のドキュメントを用意することには、間違いなく価値があります。 .