LWJGL Vector2f慢慢变成另一个向量

时间:2015-12-12 17:21:32

标签: java lwjgl

我有2张来自LWJGL的Vectro2f。一个用于存储玩家位置,另一个用于存储鼠标右键单击目标以供玩家移动。在提供增量时间的更新方法中,如何将位置矢量点缓慢移向方向矢量点,以使玩家移动到选择位置?我试过这个,但这只是瞬间跳转,并没有每次都去适当的坐标:

if(this.destination != this.position) {
        this.position.setX(this.destination.x-this.position.x);
        this.position.setY(this.destination.y-this.position.y);

}

1 个答案:

答案 0 :(得分:1)

你可以把它放在你的循环中:

if (destination != position){
  position.setX(position.getX() + dX);
  position.setY(position.getY() + dY);
}

其中dX和dY是玩家在一帧中沿X和Y方向行进的数量。 计算dX和dY的一种方法是使用trig:

dX = velocity * Math.cos(theta)其中theta是从水平方向到目的地的角度(X轴,即trig中的单位圆)。

dY = velocity * Math.sin(theta)