0

我一直在使用 JavaScript 重新创建经典的 Asteroids,canvas并且对游戏开发人员非常陌生。我想知道是否有可能创建一个有 100% 成功率击中玩家的 AI(假设敌人的子弹可以无限传播)?我希望能够控制敌人 AI 从完全不准确到完全准确的准确度——无论敌人和玩家对象的相对速度如何,它所采取的射击都能保证击中玩家。

我有一个粗略(简单)的例子来说明我在YouTube 上寻找的内容。正如你所看到的,它在预测玩家接下来的位置方面做得相对不错,但它并不完美(我也知道该视频中的一些子弹速度错误,如果玩家仅供参考)。

我使用的功能是这样的:

function angleBetween( p1, vel1, p2, vel2 ) {
    var relativePoint = {
        x: ( p2.x + vel2.x ) - ( p1.x + vel1.x ),
        y: ( p2.y + vel2.y ) - ( p1.y + vel1.y )
    };

    return Math.atan2( -relativePoint.y, -relativePoint.x );
}

p1 & vel1 是第一个物体的 x,y 位置和速度,

p2 & vel2 是第二个物体的 x,y 位置和速度。

所以基本上有没有一种方法可以改进我所做的事情,以便考虑到相关物体的相对速度,它只需要一次射击即可击中玩家?

如果我不清楚,请提前致谢并道歉。

4

0 回答 0