Enemy spawning code now reference COLS and ROWS constants; removed

extraneous enemy_count removal.
This commit is contained in:
Henry 2025-12-27 10:08:30 +00:00
parent dac1601f4a
commit c8d578af04
3 changed files with 20 additions and 10 deletions

View file

@ -43,9 +43,10 @@ func explode():
if exploding: return if exploding: return
exploding = true exploding = true
print_debug("Enemy explode!") print_debug("Enemy explode!")
EventBus.enemy_hit.emit(5)
speed = 0 speed = 0
$AnimationPlayer.play("explode") $AnimationPlayer.play("explode")
set_deferred("monitoring", false) set_deferred("monitoring", false)
EventBus.enemy_died.emit(5)
await $AnimationPlayer.animation_finished await $AnimationPlayer.animation_finished
queue_free() queue_free()
EventBus.enemy_died.emit()

View file

@ -4,7 +4,8 @@ extends Node
signal shield_changed(max_value: int, old_value: int, new_value: int) signal shield_changed(max_value: int, old_value: int, new_value: int)
signal player_died() signal player_died()
signal enemy_died(value: int) signal enemy_died()
signal enemy_hit(value: int)
signal initialize_shieldbar() signal initialize_shieldbar()
signal start_game() signal start_game()

24
main.gd
View file

@ -8,8 +8,12 @@ var enemy_count: int = 0:
set(value): set(value):
if value < 0: if value < 0:
print_debug("Enemy value set to below zero: ", get_stack()) print_debug("Enemy value set to below zero: ", get_stack())
if value > 27:
print_debug("Enemy value set to above 27!: ", get_stack())
enemy_count = value enemy_count = value
const COLS: int = 9
const ROWS: int = 3
@onready var start_button = $CanvasLayer/CenterContainer/Start @onready var start_button = $CanvasLayer/CenterContainer/Start
@onready var game_over = $CanvasLayer/CenterContainer/GameOver @onready var game_over = $CanvasLayer/CenterContainer/GameOver
@ -19,36 +23,39 @@ func _ready():
start_button.show() start_button.show()
EventBus.player_died.connect(_on_player_died) EventBus.player_died.connect(_on_player_died)
EventBus.enemy_died.connect(_on_enemy_died) EventBus.enemy_died.connect(_on_enemy_died)
EventBus.enemy_hit.connect(_on_enemy_hit)
func spawn_enemies(): func spawn_enemies():
# enemy_count = get_tree().get_nodes_in_group("enemies").size()
# print("Remaining enemies: ", enemy_count) # print("Remaining enemies: ", enemy_count)
# await get_tree().process_frame # await get_tree().process_frame
get_tree().get_nodes_in_group("enemies").size() for x in range(COLS):
for x in range(9): for y in range(ROWS):
for y in range(3):
var e = enemy.instantiate() var e = enemy.instantiate()
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16) var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
add_child(e) add_child(e)
e.start(pos) e.start(pos)
enemy_count = ROWS * COLS
await get_tree().process_frame
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size()) print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
func _on_enemy_died(value: int): func _on_enemy_died():
Global.score += value
enemy_count -= 1 enemy_count -= 1
$CanvasLayer/UI.update_score(Global.score)
print_debug(enemy_count) print_debug(enemy_count)
if enemy_count == 0: if enemy_count == 0:
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size()) print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
win_game() win_game()
func _on_enemy_hit(value: int):
Global.score += value
$CanvasLayer/UI.update_score(Global.score)
func _on_player_died(): func _on_player_died():
# get_tree().call_group("enemies", "queue_free") # get_tree().call_group("enemies", "queue_free")
enemy_win()
# $Player.set_process(false) # $Player.set_process(false)
# get_tree().call_group("enemies", "set_process", false) # get_tree().call_group("enemies", "set_process", false)
enemy_win()
instance.queue_free() instance.queue_free()
game_over.show() game_over.show()
await get_tree().create_timer(2).timeout await get_tree().create_timer(2).timeout
@ -61,6 +68,7 @@ func new_game():
get_tree().call_group("enemies", "queue_free") get_tree().call_group("enemies", "queue_free")
get_tree().call_group("enemy_bullets", "queue_free") get_tree().call_group("enemy_bullets", "queue_free")
# print("Number of enemies at new_game: ",enemy_count) # print("Number of enemies at new_game: ",enemy_count)
enemy_count = 0
await get_tree().process_frame await get_tree().process_frame
# Reset score. # Reset score.