プレイヤーとミサイルでゲームを構築しています。
P1からP2までミサイルを発射したい。ミサイルがP2に到達するには、常に正確に5秒かかる必要があります。ミサイルもP2を追跡する必要があります。P2がさらに離れると、ミサイルはタイミング制約を満たすために速度を上げる必要があります。P2が左に移動する場合、ミサイルは左に移動する必要があります(速度も変更します)。P2がP1に近づくと、ミサイルは減速する必要があります。
これは可能ですか?これを達成するための最良の方法は何ですか?
私は現在Vector2Dクラスを持っていません(これは実際にはゲームではありませんが、類推はうまくいきます)。したがって、可能であれば、それを必要としないソリューションが欲しいです。
編集:これは実際にはミサイルでもありません。:)
ありがとう!
1
(「これは実際にはゲームではない」という資格のあるミサイルガイダンスについて誰かが尋ねるのが少し怖いですが…)ミサイルの軌道の形状に制約はありますか?それは常に現在の位置とプレイヤー2の間の直線をたどることができますか?回転半径や加速度に制限はありますか?障害物を避ける必要がありますか?また、Vector2Dについても言及していますが、これは2Dでのみ必要だと想定しても安全ですか?すべてのベクトル数学をコンポーネントごとに実行できますが、単純なベクトル数学クラスと比較して書くのは不格好なので、これに対する好みがよくわかりません。
—
DMGregory
あなたはいくつかの追加情報を見逃しました。制約はありますか?ミサイルは線に沿って移動しますか、それとも方向、そして最終的にはいくつの次元を気にする必要がありますか?
—
liggiorgio
パスは制約されるべきではありません。唯一のルールは次のとおりです。A)「ミサイル」は常にその目標に向けて一歩踏み出す必要があります。B)「ミサイル」がそこに到達するには、常に5秒かかる必要があります。Vector2Dクラスを作成しても問題ありません。便利なものが1つもありません(そして、数学は私の最高の科目ではありません)。それが簡単になれば、追加できます。
—
ピーター
これを行う最も簡単な方法は、エルミートスプラインを使用して、パラメトリック値をlerpすることです。
—
Steven Srun