我一直在使用canvas
在JavaScript中重新创建经典的小行星,这对于游戏开发者来说是个新手。我想知道是否有可能创造一个100%成功击中玩家的AI(假设敌人的子弹可以无限期地行进)?我希望能够控制敌人的AI从完全不准确到完全准确的准确程度 - 无论敌人和玩家对象的相对速度如何,它都能保证击中玩家。
我在YouTube上有一个粗略(简单)的例子。正如你所看到的,它可以很好地预测玩家下一步的位置,但这并不完美(我也知道该视频中有一些子弹速度错误,如果播放器,UFO会随机射向已被摧毁仅供参考。)
我使用的功能是:
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位置和速度。
所以基本上有一种方法可以改进我所做的事情,以便考虑到相关物体的相对速度,它只需要一次击中玩家吗?
如果我不清楚,请提前致谢并道歉。