extends RigidBody2D var start_position var do_reset = false var is_reset = true # Called when the node enters the scene tree for the first time. func _ready(): start_position = position # Override the default physics when we want to manually reset the position and rotation. func _integrate_forces(state): if do_reset: state.transform = Transform2D(0, start_position) state.linear_velocity = Vector2() state.angular_velocity = 0 do_reset = false is_reset = true func _input(event): if event.is_action_pressed("shoot"): if is_reset: apply_impulse(Vector2(10, 10), Vector2(500, -800)) is_reset = false else: do_reset = true