OpenGL 向上移动

OpenGL Upwards Movement

我正在使用 LWJGL OpenGL 创建游戏。为了移动玩家(宇宙飞船),我根据玩家的 Y 轴旋转移动 X 和 Z:

float dx = distMoved * sin(toRadians(getRotY())));
float dz = distMoved * cos(toRadians(getRotY())));

这一切都很好,但是,对于向上运动,我使用这段代码,它有点管用:

float dy = distMoved * sin(toRadians(getRotX())));

问题是,无论我上下旋转,我的播放器似乎向前移动相同的量(X 和 Z),这意味着我的播放器可以面向上 90 度,并且仍然移动 X 和 Z .

在计算 X 和 Z 移动之前,我已经尝试从 'distMoved' 中减去 dy,但这并没有提供正确的移动。

有人知道我该怎么做吗?

dxdz 都必须乘以 cos(toRadians(getRotX())))