场景:我想让物体以给定的速度跟随玩家。我已经编写了使对象跟随播放器的代码(有效)。为了使对象跟随玩家,我检查了对象的哪一侧,然后根据它计算它需要影响 x 和 y 值以使其朝那个方向移动的速度。
问题:如果玩家要绕过 Ai,Ai 会急转弯以接近玩家。我想要的是让它转弯不那么剧烈,而是转弯更宽。
任何问题?请问!
我的代码:
public void facePlayer(){
double division = (double)Math.abs(player.getY() - enemyy) / Math.abs(player.getX() - enemyx);
dir = Math.atan(division);
dir = lerp(dir,division,spd);
if (enemyx >= player.getX() && enemyy <= player.getY()) {
enemyx -= (spd * Math.cos(dir));
enemyy += (spd * Math.sin(dir));
}
//if Coin is top left
if (enemyx >= player.getX() && enemyy >= player.getY()) {
enemyx -= (spd * Math.cos(dir));
enemyy -= (spd * Math.sin(dir));
}
//if Coin is bottom right
if (enemyx <= player.getX() && enemyy <= player.getY()) {
enemyx += (spd * Math.cos(dir));
enemyy += (spd * Math.sin(dir));
}
//if Coin is bottom left
if (enemyx <= player.getX() && enemyy >= player.getY()) {
enemyx += (spd * Math.cos(dir));
enemyy -= (spd * Math.sin(dir));
}
}