在我的世界里,我有一个字符,它总是朝着鼠标旋转。
当玩家向前或向后移动时,角色的x坐标等于其x坐标减去(或加上)其x坐标的余弦值,这是非常合乎逻辑的。它的y坐标也是一样,但不是cos,而是sin
:
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)。