|
@@ -14,7 +14,11 @@ enum State {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+export (float) var moving_time = 1.0
|
|
|
|
+
|
|
|
|
+
|
|
onready var life_container = $LifeContainer
|
|
onready var life_container = $LifeContainer
|
|
|
|
+onready var tween = $MoveDown
|
|
|
|
|
|
|
|
|
|
var current_state = State.DONE
|
|
var current_state = State.DONE
|
|
@@ -25,8 +29,7 @@ var current_row = 1
|
|
func generate_and_move():
|
|
func generate_and_move():
|
|
generate_row()
|
|
generate_row()
|
|
current_state = State.MOVING
|
|
current_state = State.MOVING
|
|
- move()
|
|
|
|
- current_state = State.DONE
|
|
|
|
|
|
+ start_moving()
|
|
|
|
|
|
|
|
|
|
func generate_row():
|
|
func generate_row():
|
|
@@ -57,9 +60,17 @@ func break_cell(tile_pos):
|
|
emit_signal("kace_broken")
|
|
emit_signal("kace_broken")
|
|
|
|
|
|
|
|
|
|
-func move():
|
|
|
|
|
|
+func start_moving():
|
|
current_row += 1
|
|
current_row += 1
|
|
- position.y += cell_size.y
|
|
|
|
|
|
+ tween.interpolate_property(self, "position", position,
|
|
|
|
+ position + Vector2(0, cell_size.y), moving_time,
|
|
|
|
+ Tween.TRANS_QUART, Tween.EASE_IN_OUT)
|
|
|
|
+ tween.start()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func finish_moving():
|
|
|
|
+ current_state = State.DONE
|
|
|
|
+ emit_signal("has_moved")
|
|
|
|
|
|
|
|
|
|
func _ready():
|
|
func _ready():
|
|
@@ -75,4 +86,7 @@ func _on_Ball_kace_contact(contact_pos:Vector2):
|
|
|
|
|
|
func _on_Launcher_is_full():
|
|
func _on_Launcher_is_full():
|
|
generate_and_move()
|
|
generate_and_move()
|
|
- emit_signal("has_moved")
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func _on_MoveDown_tween_all_completed():
|
|
|
|
+ finish_moving()
|