Math 速度调整计算

Math 速度调整计算,math,vector,velocity,game-physics,game-ai,Math,Vector,Velocity,Game Physics,Game Ai,我正在开发一款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_校正

我正在开发一款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_校正
,当应用
t
时间时,它将使敌人以正确的速度朝向玩家

我想我在寻找两个函数:

getCorrectionVelocity(current_velocity, desired_velocity, acceleration) // not sure if acceleration is even needed here

getTimeToReachVelocity(current_velocity, desired_velocity, acceleration)
注:

质量和转向时间不相关。想象所有质量=1,转向某个方向的时间=0

此外,我还需要在AI的其他部分使用这些方法(例如,计算敌人的速度与玩家的速度匹配所需的时间),因此我需要它们是通用的,这意味着能够计算出我给他们的任何速度的校正和时间


提前谢谢

我的做法不同。忘记计算精确的每次修正脉冲,而只是控制转向

因此,计算点积(速度,增量)并根据其符号向左或向右转向(方向取决于坐标系)。因此,为了拦截,持续施加主推力和一些小的转向推力

但是你必须实现牛顿的达朗贝尔物理学,比如


如果你想施加摩擦力,首先,你会不会也限制加速度?也许还有那个混蛋。所以零时间内没有方向变化。第二,任何智能人工智能都会测量目标的运动,通过线性延拓预测它,然后到达一个真实的拦截点。您的方法仅在目标静止时有效。如果目标不是静止的,那么猎人将沿着非常弯曲的路径行进,请参见。