我想通过模拟游戏手柄输入以相同的最大恒定速度向任何方向移动我的角色。
通常对于 8 个方向的移动,我会根据方向的类型将玩家的速度乘以一个常数。
ORTHOGONAL_SPEED = 2
DIAGONAL_SPEED = 1.414
我所拥有的是来自模拟输入的当前轴的小数。
joy1_axisDir1 = a number between -1(left) and 1(right)
joy1_axisDir2 = a number between -1(up) and 1(down)
这就是我现在要在屏幕上移动角色的方法。
卢阿代码:
if joy1_axisDir1 ~= 0 then
player.x = player.x + (player.move_speed * joy1_axisDir1)
end
if joy1_axisDir2 ~= 0 then
player.y = player.y + (player.move_speed * joy1_axisDir2)
end
这导致对角线运动明显快于任何其他方向。
我如何考虑方向以限制玩家的移动速度?