Enemy spawning code now reference COLS and ROWS constants; removed
extraneous enemy_count removal.
This commit is contained in:
parent
dac1601f4a
commit
c8d578af04
3 changed files with 20 additions and 10 deletions
3
enemy.gd
3
enemy.gd
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
24
main.gd
|
|
@ -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.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue