游戏中的水平移动(旋转玩家)

horizontal movement in game (rotated player)

在我的世界里,我有一个角色,它总是朝着鼠标旋转。

当玩家向前或向后移动时,角色的 x 坐标等于它的 x 坐标减去(或加上)它的 x 坐标的余弦,这是非常合乎逻辑的。它的 y 坐标也一样,但不是余弦,而是正弦。

像这样:

player.x = player.x + math.cos(player.r) * dt * 120 --forward
player.y = player.y + math.sin(player.r) * dt * 120

player.x = player.x - math.cos(player.r) * dt * 120 --backward
player.y = player.y - math.sin(player.r) * dt * 120

但是如果我还想让玩家 运行 侧身呢?

如果你想横向移动,你可以在计算sin/cos速度矢量之前简单地从你的r中加上或减去90度(以弧度为单位,即π/2)。