この一見よくある質問に対する答えは、驚くべきことに、あちこち検索しましたが、見つかりませんでした。私が現在直面している問題は、プレイヤーが敵に直面しているかどうかを確認することです。敵に直面している場合は、プレイヤーの視界の範囲内 (調整可能) であり、その範囲内にある場合は、最も近い安全な方向に移動します。
ここに写真があります: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
は、範囲になります。もちろん、船を右に回転させることしかできていないので、探知が半円しか効かないのとは別に、敵を右に回転させることもできません。何か案は?