我正在研究Java中的一些AI东西。当一个实体走向一个点时,运动看起来并不自然。如果它的出发点和目标是不相等的X和Y距离相互远离,运动看起来是这样的:平滑运动java
我希望它看起来移动象是这样的:
目前,运动完成像这样:
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速度。
你的*具体*问题是什么? – gparyani
如果你有两点,你可以简单地计算连接它们的线,然后相应地缩放你的x或y的运动(即,每+ x,加+ 1.2y等 – Kon