sokoban
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