如何将“相机”移动到玩家所面对方向的左/右

Posted

技术标签:

【中文标题】如何将“相机”移动到玩家所面对方向的左/右【英文标题】:how to move a "camera" to left/right of the direction the player is facing 【发布时间】:2019-08-31 14:03:46 【问题描述】:

你好,我正在制作一个 opengl fps 游戏。现在我正在做运动,我可以向前和向后移动,但不能向两侧移动。

我玩过它,但仍然无法解决问题。

newPos.z += (float)cos(yaw * M_PI / 180);
newPos.x += (float)sin(yaw * M_PI / 180);

newPos.z -= (float)cos(yaw * M_PI / 180);
newPos.x -= (float)sin(yaw * M_PI / 180);

这就是我前进和后退的方式。第一个让我前进,第二个让我后退。

【问题讨论】:

你试过修改 newPos.y 吗? 不,只有 x 和 z。 如果只增加 z 会发生什么?上升/下降?前进/后退? 如果只增加 x 会发生什么?上升/下降?前进/后退? 只是在 x 或 z 轴上移动。 【参考方案1】:

您需要更加了解您的网格。 画出来,画一个带方向和位置的箭头。 画出您正在使用的角度“偏航”。 绘制“前锋”​​的 X 和 Z 元素。 查看三角公式的原因。

如果您不能这样做,请在您的代码中交换 xz 看看会发生什么

【讨论】:

以上是关于如何将“相机”移动到玩家所面对方向的左/右的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL模拟波斯王子相机

Game Maker - 方向速度

VirtualJoystick与unity5有关

玩家相对于相机方向的移动 C#

如何让角色转向相机的方向? [Unity3D]

使用基于相机朝向的操纵杆的玩家运动