add timer before showing game over
This commit is contained in:
parent
d2c1aa044f
commit
679b4839a8
|
@ -78,6 +78,16 @@ func _input(event):
|
|||
# Disable input during animation
|
||||
return
|
||||
|
||||
var game_state = get_node("/root/Main/GameState") as GameState
|
||||
if game_state != null:
|
||||
match game_state.current_state:
|
||||
# If we are in the winning animation, fast-forward to game over screen
|
||||
GameState.State.WINNING:
|
||||
game_state.transition_to(GameState.State.GAME_OVER)
|
||||
return
|
||||
GameState.State.GAME_OVER:
|
||||
return
|
||||
|
||||
if event.is_action_pressed("ui_up"):
|
||||
move_piece(Direction.DOWN)
|
||||
if event.is_action_pressed("ui_down"):
|
||||
|
@ -107,19 +117,14 @@ func move_piece(direction) -> bool:
|
|||
var destination: Vector2 = missing_piece
|
||||
match direction:
|
||||
Direction.UP:
|
||||
# print("up")
|
||||
destination.y -= 1
|
||||
Direction.DOWN:
|
||||
destination.y += 1
|
||||
# print("down")
|
||||
Direction.LEFT:
|
||||
destination.x -= 1
|
||||
# print("left")
|
||||
Direction.RIGHT:
|
||||
destination.x += 1
|
||||
# print("right")
|
||||
|
||||
# print(destination)
|
||||
if (destination.x < 0 || destination.x >= columns
|
||||
|| destination.y < 0 || destination.y >= rows):
|
||||
print("impossible move")
|
||||
|
@ -178,3 +183,11 @@ func _on_GameState_state_changed(previous, current):
|
|||
match current:
|
||||
GameState.State.WINNING:
|
||||
$Particles2D.emitting = true
|
||||
$Timer.start(-1)
|
||||
GameState.State.GAME_OVER:
|
||||
$Timer.stop()
|
||||
|
||||
func _on_Timer_timeout():
|
||||
var game_state = get_node("/root/Main/GameState") as GameState
|
||||
if game_state != null:
|
||||
game_state.transition_to(GameState.State.GAME_OVER)
|
|
@ -81,3 +81,4 @@ process_material = SubResource( 2 )
|
|||
[node name="Timer" type="Timer" parent="."]
|
||||
wait_time = 2.0
|
||||
one_shot = true
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
||||
|
|
Loading…
Reference in a new issue