同じ最大一定速度でアナログゲームパッド入力を使用して、キャラクターを任意の方向に動かしたいと考えています。
通常、8 方向の移動の場合、プレイヤーの速度に方向の種類に基づいた定数を掛けるだけです。
ORTHOGONAL_SPEED = 2
DIAGONAL_SPEED = 1.414
私が持っているのは、アナログ入力からの現在の軸の 10 進数です。
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
これにより、斜めの動きが他のどの方向よりも著しく速くなります。
プレイヤーの移動速度を制限する方向をどのように考慮に入れるのですか?