I'm trying to make a rail shooter game (like star fox) but I ran into one problem. The player has to "mash" one of the moving keys, as opposed to how I wanted it where they can just hold the key down.
code inside of a local script, which has been placed in the starter pack
local BodyPositionPosX = 8
local BodyPositionPosY = 1
function onKeyPress(inputObject, gameProcessedEvent)
if inputObject.KeyCode == Enum.KeyCode.A then
BodyPositionPosX = math.min((BodyPositionPosX + 2), 24)
game.Workspace.Part.BodyPosition.position = Vector3.new(BodyPositionPosX,BodyPositionPosY,19)
elseif inputObject.KeyCode == Enum.KeyCode.D then
BodyPositionPosX = math.max((BodyPositionPosX - 2), -16)
game.Workspace.Part.BodyPosition.position = Vector3.new(BodyPositionPosX,BodyPositionPosY,19)
elseif inputObject.KeyCode == Enum.KeyCode.W then
BodyPositionPosY = math.min((BodyPositionPosY + 2), 24)
game.Workspace.Part.BodyPosition.position = Vector3.new(BodyPositionPosX,BodyPositionPosY,19)
elseif inputObject.KeyCode == Enum.KeyCode.S then
BodyPositionPosY = math.max((BodyPositionPosY - 2), 0)
game.Workspace.Part.BodyPosition.position = Vector3.new(BodyPositionPosX,BodyPositionPosY,19)
end
end
game:GetService("UserInputService").InputBegan:connect(onKeyPress)

2 comments
Use input ended event
I tried switching it and it only activated when you let go of the button not automatic