java - 沿局部轴移动相机 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();
}
解决方案
推荐阅读
- android - Flutter ARcore如何以3D显示小部件?
- javascript - 我正在寻找一种方法来检查它是否在 JS 中的 Fetch 中正确获得响应
- java - 如何通过Java设置Z3的并行模式
- testcontainers - 使用“withFileSystemBind”绑定卷 -> 权限被拒绝
- android - Android - 加入路径并删除相交部分
- r - 在 dplyr case_when 中输入所有列名并根据条件分配给新列
- r - 如何在R中将一个小的df插入一个更大的df
- sql-server - 从 SSC SQL Server 数据库中检索代码片段和中低发现
- google-apps-script - 谷歌应用程序脚本的谷歌分析在几周后没有显示任何数据
- drawing - 精灵分辨率和缩小绘图