私は Android 2D の「スペース ファイターズ」ゲームを開発しており、現在は AI を開発しています。
AI (敵) は特定の速度 V1 (V1x、V1y) で移動しており、最大速度でインターセプト ベクトルに一致するようにこの速度を調整したいと考えています。
インターセプト速度は次のように達成できることがわかっています。
V_intercept = (player.x - enemy.x, player.y - enemy.y)
normalize(V_intercept)
V_intercept.x *= MAX_SPEED
V_intercept.y *= MAX_SPEED
私が探しているのは、単一の速度を見つける方法ですv_correction
。これを適用するt
と、敵はプレイヤーに向かって正しい速度になります。
私は2つの機能を探していると思います:
getCorrectionVelocity(current_velocity, desired_velocity, acceleration) // not sure if acceleration is even needed here
getTimeToReachVelocity(current_velocity, desired_velocity, acceleration)
ノート:
質量と操舵時間は関係ありません。すべての質量 = 1、ある方向を向くまでの時間 = 0 と想像してください。
また、AI の他の部分でこれらのメソッドが必要になるため (たとえば、敵の速度がプレイヤーの速度と一致するまでにかかる時間を計算するため)、これらのメソッドは汎用的である必要があります。私が与えた速度に対する補正と時間を計算します。
前もって感謝します!