Просто сохраните нужные изменения в векторе, затем умножьте это на обратную матрицу камеры и добавьте результат к вашей позиции.Например, ваш метод 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 свои собственные методы для умножения матриц и векторов, поэтому вам, возможно, придется их программировать самостоятельно.Кроме того, это должно работать, хотя.