1

私の2Dゲームでは、ランダムに表示されるヒーローとコインがあります。主人公がパワーアップすると、速度が上がるため、より速く飛ぶことができます。電源投入は10秒間アクティブです。パワーアップがアクティブなとき、彼がコインの近くにいる場合、テンプルランのようにコインが彼に続いて衝突するはずです。私はbox2dタイプの物理学を使用していません。衝突については、長方形の交差チェックを使用していますが、ここでは衝突は問題になりません。

磁石のようなヒーローを追いかけるために、このコインの効果をどのように達成しますか?

私の現在の実装は、コイングループ内の各コインとヒーローの間の距離を確認することです。コイン移動の目標距離が満たされている場合は、ヒーローの速度に基づいてxでコインの速度を変更しますが、これは期待どおりに機能していません。インパルスを適用するにはどうすればよいですか?

4

1 に答える 1

3

距離の逆数で機能するように変更します。参考までに、ニュートンの(ほとんど正しい)万有引力の法則

ここFで、は力、Gは一定、rは半径(分離距離)、はコインの質量、はヒーローの質量です。m1m2

ニュートンの運動の第2法則も知っています:

Fは力、はコインmの質量、はコインaの加速度です。

これらの2つの方程式を組み合わせて、次のようにすることができます。

そこから、ヒーローの「質量」はヒーローの面積に比例することがわかります(2Dオブジェクトには実際には質量がありませんが、少しだけふりをしましょう)。

ヒーローをすべての方向に均等にスケーリングしていると仮定すると、これは、ヒーローの「質量」がサイズスケール係数の2乗に比例することを意味しますS

これはすべて要約すると次のようになります。

ここaで、は加速度(探している量)、Sはヒーローサイズのスケール係数、はdヒーローからコインまでの距離、はk一定の係数です(コインが適切な速度で移動するまでファッジするだけです)。

于 2012-10-31T13:56:13.713 に答える