Set up new signals in EventBus; preparing to restructure game start
code.
This commit is contained in:
parent
7ef6076eda
commit
dec3cbe595
9 changed files with 34 additions and 14 deletions
4
enemy.gd
4
enemy.gd
|
|
@ -4,6 +4,8 @@ var bullet_scene = preload("res://enemy_bullet.tscn")
|
|||
var start_pos = Vector2.ZERO
|
||||
var speed = 0
|
||||
|
||||
var exploding = false
|
||||
|
||||
@onready var screensize = get_viewport_rect().size
|
||||
|
||||
func start(pos):
|
||||
|
|
@ -36,6 +38,8 @@ func _process(delta):
|
|||
|
||||
|
||||
func explode():
|
||||
if exploding: return
|
||||
exploding = true
|
||||
print_debug("Enemy explode!")
|
||||
speed = 0
|
||||
$AnimationPlayer.play("explode")
|
||||
|
|
|
|||
|
|
@ -5,5 +5,7 @@ extends Node
|
|||
signal shield_changed(max_value: int, old_value: int, new_value: int)
|
||||
signal player_died()
|
||||
signal enemy_died(value: int)
|
||||
signal initialize_shieldbar()
|
||||
signal start_game()
|
||||
|
||||
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations
|
||||
|
|
|
|||
6
global.gd
Normal file
6
global.gd
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
extends Node
|
||||
|
||||
# Global Game variables
|
||||
var score: int = 0
|
||||
var new_game = true
|
||||
var playing = false
|
||||
1
global.gd.uid
Normal file
1
global.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dhfukspc2nyu0
|
||||
10
main.gd
10
main.gd
|
|
@ -1,7 +1,6 @@
|
|||
extends Node2D
|
||||
|
||||
var enemy = preload("res://enemy.tscn")
|
||||
var score = 0
|
||||
var playing = false
|
||||
var enemy_count: int = 0
|
||||
|
||||
|
|
@ -28,9 +27,9 @@ func spawn_enemies():
|
|||
|
||||
|
||||
func _on_enemy_died(value: int):
|
||||
score += value
|
||||
Global.score += value
|
||||
enemy_count -= 1
|
||||
$CanvasLayer/UI.update_score(score)
|
||||
$CanvasLayer/UI.update_score(Global.score)
|
||||
print_debug(enemy_count)
|
||||
if enemy_count == 0:
|
||||
print("All enemies defeated!")
|
||||
|
|
@ -45,8 +44,9 @@ func _on_player_died():
|
|||
start_button.show()
|
||||
|
||||
func new_game():
|
||||
score = 0
|
||||
$CanvasLayer/UI.update_score(score)
|
||||
Global.score = 0
|
||||
EventBus.initialize_shieldbar.emit()
|
||||
$CanvasLayer/UI.update_score(Global.score)
|
||||
$Player.start()
|
||||
spawn_enemies()
|
||||
playing = true
|
||||
|
|
|
|||
11
player.gd
11
player.gd
|
|
@ -14,6 +14,7 @@ var shield: int = max_shield:
|
|||
|
||||
var can_shoot = true
|
||||
var shader_active = false
|
||||
var clamp_shield = clamp(shield, 0, max_shield)
|
||||
|
||||
@onready var screensize = get_viewport_rect().size
|
||||
@onready var explosion = $Explosion
|
||||
|
|
@ -27,8 +28,10 @@ func start():
|
|||
set_process(true)
|
||||
$Ship.show()
|
||||
position = Vector2(screensize.x / 2, screensize.y - 64)
|
||||
shield = max_shield
|
||||
$GunCooldown.wait_time = cooldown
|
||||
var old_value = 0
|
||||
set_shield(max_shield)
|
||||
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
||||
|
||||
func _process(delta):
|
||||
var input = Input.get_vector("left", "right", "up", "down")
|
||||
|
|
@ -59,17 +62,17 @@ func shoot():
|
|||
tween.tween_property($Ship, "position:y", 0, 0.05)
|
||||
|
||||
func set_shield(value: int):
|
||||
var old_value: int = shield
|
||||
shield = min(max_shield, value)
|
||||
var old_value = shield
|
||||
shield = clamp(value, 0, max_shield)
|
||||
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
||||
print("Shield set to:", shield)
|
||||
if shield <= 0:
|
||||
EventBus.player_died.emit()
|
||||
set_process(false)
|
||||
$Ship.hide()
|
||||
$Explosion.show()
|
||||
$Explosion/AnimationPlayer.play("explosion-one-shot")
|
||||
await $Explosion/AnimationPlayer.animation_finished
|
||||
EventBus.player_died.emit()
|
||||
|
||||
func _on_gun_cooldown_timeout() -> void:
|
||||
can_shoot = true
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ config/icon="res://icon.svg"
|
|||
[autoload]
|
||||
|
||||
EventBus="*res://event_bus.gd"
|
||||
Global="*res://global.gd"
|
||||
|
||||
[display]
|
||||
|
||||
|
|
|
|||
12
ui.gd
12
ui.gd
|
|
@ -8,19 +8,17 @@ var shader_active = false
|
|||
func _ready():
|
||||
# get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui")
|
||||
EventBus.shield_changed.connect(_on_shield_changed)
|
||||
EventBus.initialize_shieldbar.connect(_on_initialize_shieldbar)
|
||||
|
||||
func update_score(value):
|
||||
score_counter.display_digits(value)
|
||||
|
||||
|
||||
func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
||||
|
||||
shield_bar.max_value = max_value
|
||||
shield_bar.value = new_value
|
||||
var shield_depletion = int(old_value - new_value)
|
||||
print("Shield Depletion:", old_value, "-", new_value, " = ", shield_depletion)
|
||||
var tween = create_tween()
|
||||
tween.tween_property(shield_bar, "value", new_value - shield_depletion, .20).set_trans(Tween.TRANS_LINEAR)
|
||||
tween.tween_property(shield_bar, "value", new_value, 3).set_trans(Tween.TRANS_LINEAR)
|
||||
_on_fx_shield_ui()
|
||||
|
||||
|
||||
|
|
@ -30,3 +28,9 @@ func _on_fx_shield_ui():
|
|||
await get_tree().create_timer(1).timeout
|
||||
shader_active = false
|
||||
shield_bar.material.set_shader_parameter("toggle", 0.0)
|
||||
|
||||
func _on_initialize_shieldbar():
|
||||
print("Shieldbar Initializing!")
|
||||
# var tween = create_tween()
|
||||
# tween.tween_property(shield_bar, "value", 10, 3).set_trans(Tween.TRANS_LINEAR)
|
||||
# print("Tweens played!")
|
||||
|
|
|
|||
1
ui.tscn
1
ui.tscn
|
|
@ -29,7 +29,6 @@ material = SubResource("ShaderMaterial_n5ude")
|
|||
custom_minimum_size = Vector2(80, 16)
|
||||
layout_mode = 2
|
||||
step = 0.0
|
||||
value = 100.0
|
||||
nine_patch_stretch = true
|
||||
stretch_margin_left = 3
|
||||
stretch_margin_top = 3
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue