java - LWJGL Vector2f慢慢变成另一个 vector

标签 java lwjgl

我有 2 个 LWJGL 的 Vectro2f。一个用于存储玩家位置,另一个用于存储鼠标右键单击目标以供玩家移动到的位置。在提供增量时间的更新方法中,我如何缓慢地将位置 vector 点移向方向 vector 点,以使玩家移动到选择的位置?我已经尝试过这个,但这只是即时跳跃,并且每次都不会到达正确的坐标:

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

}

最佳答案

您可以将其放入循环中:

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

其中 dX 和 dY 是玩家在一帧中沿 X 和 Y 方向移动的距离。 计算 dX 和 dY 的一种方法是使用三角函数:

dX = 速度 * Math.cos(theta) 其中 theta 是与水平方向(X 轴,即三角函数中的单位圆)到目的地的角度。

dY = 速度 * Math.sin(theta)

关于java - LWJGL Vector2f慢慢变成另一个 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34242751/

相关文章:

java - LWJGL 可以与 Graphics2D 一起使用吗?

java - React-Native 无法在 Android 上构建

java - LWJGL - 出现错误 : "Cannot use offsets when Element Array Buffer Object is disabled"

java - OpenGL glBufferSubData - 无法让它工作

java - 如何更改 Slick2D 游戏任务栏中的图片

java - LWJGL - 渲染周期屏幕闪烁

java - 在原子值的情况下从 map 中删除键

java - OnClick 不触发?

html - Java:通过 eclipse 生成的 jar 文件无法运行。可能是什么问题?

java - 抛出 eclipse 异常