OpenGL向上运动

时间:2018-09-01 19:09:27

标签: java opengl lwjgl game-physics

我正在使用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移动。 / p>

在计算X和Z运动之前,我尝试从'distMoved'中减去dy,但这并不能提供正确的运动。

有人知道我应该怎么做吗?

1 个答案:

答案 0 :(得分:0)

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