|
1 | 1 | extends Node2D |
2 | 2 |
|
3 | 3 | var spawn_positions = null |
4 | | -#preload("res://characters/enemy/Enemy.tscn") |
5 | | - |
6 | | -# Instead, you can load the resource dynamically: |
7 | | -var enemy_scene = load("res://characters/enemy/Enemy.tscn") |
| 4 | +var enemy_scene = null |
8 | 5 |
|
9 | 6 | # Called when the node enters the scene tree for the first time. |
10 | 7 | func _ready(): |
11 | 8 | randomize() |
12 | 9 | spawn_positions = $SpawnPositions.get_children() |
13 | | - |
| 10 | + |
| 11 | + # Try to load the enemy scene |
| 12 | + enemy_scene = load("res://characters/enemy/Enemy.tscn") |
| 13 | + if enemy_scene == null: |
| 14 | + push_error("Failed to load enemy scene from: res://characters/enemy/Enemy.tscn") |
| 15 | + # Optionally disable the spawn timer if it exists |
| 16 | + if has_node("SpawnTimer"): |
| 17 | + $SpawnTimer.stop() |
14 | 18 |
|
15 | 19 | func spawn_enemy(): |
| 20 | + # Check if we have valid spawn positions and enemy scene |
| 21 | + if spawn_positions == null or spawn_positions.size() == 0 or enemy_scene == null: |
| 22 | + push_error("Cannot spawn enemy: Missing required resources") |
| 23 | + return |
| 24 | + |
16 | 25 | var index = randi() % spawn_positions.size() |
17 | 26 | var enemy = enemy_scene.instantiate() |
18 | | - enemy.global_position = spawn_positions[index].global_position |
19 | | - enemy.connect("enemy_died", Callable(get_tree().current_scene, "_on_enemy_died")) |
20 | | - add_child(enemy) |
| 27 | + if enemy: |
| 28 | + enemy.global_position = spawn_positions[index].global_position |
| 29 | + enemy.connect("enemy_died", Callable(get_tree().current_scene, "_on_enemy_died")) |
| 30 | + add_child(enemy) |
| 31 | + else: |
| 32 | + push_error("Failed to instantiate enemy scene") |
21 | 33 |
|
22 | 34 | func _on_spawn_timer_timeout(): |
23 | 35 | spawn_enemy() |
|
0 commit comments