令人惊讶的是,我已经搜索了所有内容,但找不到这个看似常见问题的答案。我目前面临的问题是检查玩家是否面对敌人,如果是在玩家视野的范围内(可调节),如果在该范围内,则朝最近的安全方向移动。
这是一张图片:D
那么,我将如何做到这一点?我有每个船对象的x
,y
和direction
, 。这是我最后一次失败的尝试,试图认为玩家的方向将与敌人相对于玩家的方向正好成 180 度角。
var direction=Math.direction(this.x,this.y,player.x,player.y,1),
playerview=Math.abs(direction)-Math.abs(player.direction-180)
if(Math.abs(playerview)<10) {
console.log('in view')
this.xVelocity+=AI.speed*Math.sin(playerview*Math.PI/180)
this.xVelocity+=AI.speed*Math.cos(playerview*Math.PI/180)
}
在此示例中,10
将是范围。当然,我只是设法让船只向右旋转,所以除了探测只工作半圈外,我也无法让敌人向右转。有任何想法吗?