【问题标题】: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 轴上移动。

标签: c++ opengl 3d


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多