我正在开发一款Android 2D“太空战士”游戏,我现在正在开发人工智能。
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
时,它将使敌人以正确的速度朝向玩家。
我想我正在寻找两个功能:
getCorrectionVelocity(current_velocity, desired_velocity, acceleration) // not sure if acceleration is even needed here
getTimeToReachVelocity(current_velocity, desired_velocity, acceleration)
注意:
Mass&转向时间无关紧要。想象一下所有质量= 1,转向某个方向的时间= 0
另外,我需要在AI的其他部分使用这些方法(例如,计算敌人将其速度与玩家的速度相匹配所需的时间),因此我需要它们是通用的,意思是能够计算校正&我给他们的任何速度的时间。
提前致谢!