Added shoot-to-start game code, re-ordered starting sequence using

"playing" variable.
This commit is contained in:
Henry 2025-12-23 10:38:27 +00:00
parent 099440d27f
commit ec7a84c252
4 changed files with 33 additions and 11 deletions

14
main.gd
View file

@ -12,6 +12,8 @@ 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)
# spawn_enemies() # spawn_enemies()
func spawn_enemies(): func spawn_enemies():
@ -36,21 +38,28 @@ func _on_enemy_died(value: int):
win_game() win_game()
func _on_player_died(): func _on_player_died():
playing = false
get_tree().call_group("enemies", "queue_free") get_tree().call_group("enemies", "queue_free")
game_over.show() game_over.show()
await get_tree().create_timer(2).timeout await get_tree().create_timer(2).timeout
game_over.hide() game_over.hide()
start_button.show() start_button.show()
playing = false
func new_game(): func new_game():
Global.score = 0 Global.score = 0
EventBus.initialize_shieldbar.emit() # EventBus.initialize_shieldbar.emit()
$Player.start() $Player.start()
$CanvasLayer/UI.update_score(Global.score) $CanvasLayer/UI.update_score(Global.score)
spawn_enemies() spawn_enemies()
playing = true playing = true
func _input(EventInput):
if EventInput.is_action_pressed("shoot") and playing == false:
print("Input detected!")
start_button.hide()
new_game()
func _on_start_pressed(): func _on_start_pressed():
start_button.hide() start_button.hide()
new_game() new_game()
@ -58,6 +67,7 @@ func _on_start_pressed():
func win_game(): func win_game():
playing = false playing = false
game_over.show() game_over.show()
$Player._on_game_over()
await get_tree().create_timer(2).timeout await get_tree().create_timer(2).timeout
game_over.hide() game_over.hide()
start_button.show() start_button.show()

View file

@ -59,8 +59,8 @@ centered = false
region_enabled = true region_enabled = true
region_rect = Rect2(0, 0, 240, 320) region_rect = Rect2(0, 0, 240, 320)
[node name="Player" parent="." instance=ExtResource("2_0xm2m")] [node name="Player" parent="." groups=["ship"] instance=ExtResource("2_0xm2m")]
position = Vector2(123, 272) position = Vector2(123, 254)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = { libraries = {

View file

@ -12,7 +12,7 @@ signal damage_taken
var shield: int = 0: var shield: int = 0:
set = set_shield set = set_shield
var can_shoot = true var can_shoot = false
var shader_active = false var shader_active = false
var clamp_shield = clamp(shield, 0, max_shield) var clamp_shield = clamp(shield, 0, max_shield)
@ -22,20 +22,24 @@ var clamp_shield = clamp(shield, 0, max_shield)
@onready var ship = $Ship @onready var ship = $Ship
func _ready(): func _ready():
set_process(false)
print(shield) print(shield)
$Ship.hide() $Ship.hide()
# start() # start()
func start(): func start():
print(shield) print(shield)
set_process(true) $Ship.frame = 1
$Ship.show() $Ship.show()
position = Vector2(screensize.x / 2, screensize.y + 32) position = Vector2(screensize.x / 2, screensize.y)
var tween = create_tween() var tween = create_tween()
tween.tween_property($Ship, "position:y", 32 * -1, .25) tween.tween_property(self, "position:y", 32 * -1, .25).as_relative()
$GunCooldown.wait_time = cooldown $GunCooldown.wait_time = cooldown
set_shield(max_shield) set_shield(max_shield)
print(shield) print(shield)
await get_tree().create_timer(2).timeout
set_process(true)
can_shoot = true
# EventBus.shield_changed.emit(max_shield, old_value, shield) # EventBus.shield_changed.emit(max_shield, old_value, shield)
func _process(delta): func _process(delta):
@ -61,10 +65,10 @@ func shoot():
$GunCooldown.start() $GunCooldown.start()
var b = bullet_scene.instantiate() var b = bullet_scene.instantiate()
get_tree().root.add_child(b) get_tree().root.add_child(b)
b.start(position + $Ship.position + Vector2(0, -1)) b.start(position + ship.position + Vector2(0, -1))
var tween = create_tween().set_parallel(false) var tween = create_tween().set_parallel(false)
tween.tween_property($Ship, "position:y", 1, 0.1).as_relative() tween.tween_property(ship, "position:y", 1, 0.1)
tween.tween_property($Ship, "position:y", 0, 0.05).as_relative() tween.tween_property(ship, "position:y", 0, 0.05)
func set_shield(value: int): func set_shield(value: int):
var old_value = shield var old_value = shield
@ -98,3 +102,10 @@ func _on_damage_taken() -> void:
await get_tree().create_timer(1).timeout await get_tree().create_timer(1).timeout
shader_active = false shader_active = false
$Ship.material.set_shader_parameter("toggle", 0.0) $Ship.material.set_shader_parameter("toggle", 0.0)
func _on_game_over() -> void:
set_process(false)
$Ship.frame = 1
await get_tree().create_timer(2).timeout
var tween = create_tween()
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN)

1
ui.gd
View file

@ -34,5 +34,6 @@ func _on_initialize_shieldbar():
print("Shieldbar Initializing!") print("Shieldbar Initializing!")
var tween = create_tween() var tween = create_tween()
tween.tween_property(shield_bar, "value", 100, .25).set_trans(Tween.TRANS_LINEAR) tween.tween_property(shield_bar, "value", 100, .25).set_trans(Tween.TRANS_LINEAR)
await tween.finished
print_debug("Tweens played!") print_debug("Tweens played!")
return return