LWJGL 2 相机随鼠标移动

LWJGL 2 Camera Movement According to mouse

您好,我是 OpenGl 和 lwjgl 的新手。我开发游戏已经有一段时间了,但遇到了一个问题。我使用 mouse.getdx 和 dy 来旋转,但很明显,当我按下 wasd(默认移动键)时,它们不会根据方向改变。我尝试了一些示例,但其中 none 有效。这是代码: https://pastebin.com/UXHGGh5nCode 关于如何解决这个问题的任何想法?谢谢

只需将所需的更改存储在向量中,然后将其与相机矩阵的逆相乘并将结果添加到您的位置。 例如,您的方法 move 可能如下所示:

public void move() {
    Vector3f movement = new Vector3f(0,0,0);
    float x = Mouse.getX();

    if(Keyboard.isKeyDown(Keyboard.KEY_W))
        movement.z-=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_D))
        movement.x+=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_A))
        movement.x-=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_S))
        movement.z+=0.02f; 

    movement = yourCameraMatrix.inverse().multiply(movement);
    position.add(movement);
}

我不确定 lwjgl 是否有自己的矩阵和向量相乘方法,所以您可能需要自己编写这些方法。除此之外,这应该可行。