1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
extends Sprite onready var tween = $Tween onready var initial_pos = position var start_new = true func _physics_process(_delta): if tween.is_active(): return if not start_new: return tween.interpolate_property( self, "position", position, position + Vector2.RIGHT * 32, .7, tween.TRANS_LINEAR, tween.EASE_IN_OUT ) tween.start() func _on_VisibilityNotifier2D_screen_exited(): start_new = false if tween.is_active(): yield(tween, "tween_all_completed") tween.stop_all() position = initial_pos start_new = true