To add on a.hadi's answer, I don't think you should use [tt]input[/tt] here, but instead poll for input events in the [tt]fixed_process[/tt] function, so that you act on events in the frame they're received. E.g. something like:[code]const SPEED = 200 # px/sfunc ready(): set_fixed_process(true)func fixed_process(delta): var motion = Vector3() if Input.is_action_pressed("left"): motion += Vector3(-1, 0, 0) if Input.is_action_pressed("right"): motion += Vector3(1, 0, 0) motion = motion.normalized() SPEED delta move(motion)[/code]