我正在用 Java 做一些 AI 方面的工作。当一个实体向一个点移动时,移动看起来并不自然。如果它的起点和目标之间的 X 和 Y 距离不相等,则运动如下所示:
我希望它看起来像这样:
目前,移动是这样完成的:
int tX = target.x;
int tY = target.y;
if(tX> oX){
getOwner().addX(getOwner().getMoveSpeed());
}
if(tX < oX){
getOwner().addX(-getOwner().getMoveSpeed());
}
if(tY> oY){
getOwner().addY(getOwner().getMoveSpeed());
}
if(tY< oY){
getOwner().addY(-getOwner().getMoveSpeed());
}
我猜有比这更好的处理运动的方法。
所以我想知道的可能是如何计算出我需要移动的角度,然后计算出所需的 x 和 y 速度。