extends RigidBody2D var dir = Vector2(0, 0) func _input(event): var x = 0 var y = 0 if event.is_action_pressed('left'): x -= 1 if event.is_action_released('left'): x += 1 if event.is_action_pressed('right'): x += 1 if event.is_action_released('right'): x -= 1 if event.is_action_pressed('up'): y -= 1 if event.is_action_released('up'): y += 1 if event.is_action_pressed('down'): y += 1 if event.is_action_released('down'): y -= 1 dir.x += x dir.y += y func _process(delta): if linear_velocity.length_squared() < 1: $Sprite.play('default') elif linear_velocity.x > 0: $Sprite.play('right') else: $Sprite.play('left') func _physics_process(delta : float): apply_central_impulse(dir.normalized() * 10)