首页 > 解决方案 > 沿局部轴移动相机 LWJGL

问题描述

所以我一直在 lwjgl 2 中制作游戏引擎,并且我有一个浮动相机,我想像 fps 相机一样工作,当使用 a 或 d 键而不是全局轴时,我需要它沿着局部轴移动。它适用于向前和向后,但不适用于左右。

public void move()
    {
        float moveAt = 0;
        
        float speed = 0.02f;
        calculatePitch();
        calculateYaw();
        if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT))
        {
            speed *= 4;
        }
        if (Keyboard.isKeyDown(Keyboard.KEY_W))
        {
            moveAt = -speed;
        }
        if (Keyboard.isKeyDown(Keyboard.KEY_S))
        {
            moveAt = speed;
        }
        if (Keyboard.isKeyDown(Keyboard.KEY_E))
        {
            position.y += speed;
        }
        if (Keyboard.isKeyDown(Keyboard.KEY_Q))
        {
            position.y -= speed;
        }
        
        float dx = (float) -(moveAt * Math.sin(Math.toRadians(yaw)));
        float dy = (float) (moveAt * Math.sin(Math.toRadians(pitch)));
        float dz = (float) (moveAt * Math.cos(Math.toRadians(yaw)));
        
        position.x += dx;
        position.y += dy;
        position.z += dz;
        
        calculatePitch();
        calculateYaw();
    } 

标签: java3dcameralwjgl

解决方案


推荐阅读