【问题标题】:horizontal movement in game (rotated player)游戏中的水平移动(旋转玩家)
【发布时间】:2015-08-21 14:36:16
【问题描述】:

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

当玩家向前或向后移动时,角色的 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

但如果我也想让玩家侧身跑怎么办?

【问题讨论】:

  • 您正在使用 r 进行旋转?我不建议这样做,如果您将使用 r 作为与原点的距离,这是标准的。

标签: math lua logic love2d


【解决方案1】:

如果您想侧向移动,您可以在计算 sin/cos 速度矢量之前简单地从 r 中添加或减去 90 度(以弧度表示,即 π/2)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多