hi! i'm relatively new to coding, especially in lua, and i'm trying to make a game that involves grid-based movement but i'm having an issue in that the player can move before the last movement is finished, which ends up leading to things like diagonal movement and basically just messing up the grid movement setup lol-- i expect this is an easy fix but i couldn't rlly find anything online to help me out here so hopefully one of u can help!
local movey = game.Workspace.PlaceholderCharacter --movey is not a permanent character name lol
local usrinpsrv = game:GetService("UserInputService")
local score = 0
usrinpsrv.InputBegan:Connect(function(input)
--controls!! this is coded so poorly
--forward
if input.KeyCode == Enum.KeyCode.W then
score = score + 1
print(score)
for i = 1,8 do
movey.Position = movey.Position + Vector3.new(0, 0, -0.5)
wait(.02)
end
--left
elseif input.KeyCode == Enum.KeyCode.A then
for i = 1,8 do
movey.Position = movey.Position + Vector3.new(-0.5, 0, 0)
wait(.02)
end
--right
elseif input.KeyCode == Enum.KeyCode.D then
for i = 1,8 do
movey.Position = movey.Position + Vector3.new(0.5, 0, 0)
wait(.02)
end
elseif input.KeyCode == Enum.KeyCode.S then
score = score - 1
print(score)
for i = 1,8 do
movey.Position = movey.Position + Vector3.new(0, 0, 0.5)
wait(.02)
end
end
end)
also, if anybody notices anything else wrong with the script that could be fixed please let me know! ty in advance!

2 comments
you mean only one key will work at a time so you dont want the player to move diagonally?
idk how to reply to comments but to the other guy yes lol