extends Node2D @onready var start_button = $CanvasLayer/CenterContainer/Start @onready var game_over = $CanvasLayer/CenterContainer/GameOver var enemy: PackedScene = preload("res://enemy/enemy.tscn") var score: int = 0 var enemies_count: int = 0 func _ready(): game_over.hide() start_button.show() func new_game(): score = 0 $CanvasLayer/UI.update_score(score) $Player.start() spawn_enemies() func spawn_enemies(): for x in range(9): for y in range(3): var e = enemy.instantiate() var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16) add_child(e) e.call_deferred("start", pos) e.connect("died", Callable(self, "_on_enemy_died")) e.add_to_group("enemies") enemies_count = 27 func _on_enemy_died(value): score += value $CanvasLayer/UI.update_score(score) enemies_count -= 1 if enemies_count == 0: call_deferred("spawn_enemies") func _on_start_pressed(): start_button.hide() new_game() func _on_player_died(): get_tree().call_group("enemies", "queue_free") game_over.show() await get_tree().create_timer(2).timeout game_over.hide() start_button.show()