Troubleshooting player_died signal.
This commit is contained in:
parent
afc5c68569
commit
a73fb28552
7 changed files with 48 additions and 56 deletions
4
enemy.gd
4
enemy.gd
|
|
@ -1,7 +1,5 @@
|
||||||
extends Area2D
|
extends Area2D
|
||||||
|
|
||||||
signal died
|
|
||||||
|
|
||||||
var bullet_scene = preload("res://enemy_bullet.tscn")
|
var bullet_scene = preload("res://enemy_bullet.tscn")
|
||||||
var start_pos = Vector2.ZERO
|
var start_pos = Vector2.ZERO
|
||||||
var speed = 0
|
var speed = 0
|
||||||
|
|
@ -41,6 +39,6 @@ func explode():
|
||||||
speed = 0
|
speed = 0
|
||||||
$AnimationPlayer.play("explode")
|
$AnimationPlayer.play("explode")
|
||||||
set_deferred("monitoring", false)
|
set_deferred("monitoring", false)
|
||||||
died.emit(5)
|
EventBus.enemy_died.emit(5)
|
||||||
await $AnimationPlayer.animation_finished
|
await $AnimationPlayer.animation_finished
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,7 @@ extends Node
|
||||||
@warning_ignore_start("unused_signal") # since otherwise Godot will throw a warning that the signal is unused in current scope
|
@warning_ignore_start("unused_signal") # since otherwise Godot will throw a warning that the signal is unused in current scope
|
||||||
|
|
||||||
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 enemy_died()
|
||||||
|
|
||||||
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations
|
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,21 @@
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://h04wm5a27u0" path="res://Mini Pixel Pack 3/Effects/Explosion (16 x 16).png" id="1_q7epf"]
|
[ext_resource type="Texture2D" uid="uid://h04wm5a27u0" path="res://Mini Pixel Pack 3/Effects/Explosion (16 x 16).png" id="1_q7epf"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_j4sxf"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_vxas0"]
|
[sub_resource type="Animation" id="Animation_vxas0"]
|
||||||
resource_name = "explosion-one-shot"
|
resource_name = "explosion-one-shot"
|
||||||
length = 0.5
|
length = 0.5
|
||||||
|
|
@ -19,21 +34,6 @@ tracks/0/keys = {
|
||||||
"values": [0, 1, 3, 4, 5]
|
"values": [0, 1, 3, 4, 5]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_j4sxf"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath(".:frame")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [0]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m5xho"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m5xho"]
|
||||||
_data = {
|
_data = {
|
||||||
&"RESET": SubResource("Animation_j4sxf"),
|
&"RESET": SubResource("Animation_j4sxf"),
|
||||||
|
|
@ -48,4 +48,4 @@ hframes = 6
|
||||||
libraries = {
|
libraries = {
|
||||||
&"": SubResource("AnimationLibrary_m5xho")
|
&"": SubResource("AnimationLibrary_m5xho")
|
||||||
}
|
}
|
||||||
autoplay = "explosion-one-shot"
|
autoplay = "RESET"
|
||||||
|
|
|
||||||
26
main.gd
26
main.gd
|
|
@ -1,22 +1,17 @@
|
||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
|
var enemy = preload("res://enemy.tscn")
|
||||||
|
var score = 0
|
||||||
|
var playing = false
|
||||||
|
|
||||||
@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
|
||||||
|
|
||||||
var enemy = preload("res://enemy.tscn")
|
|
||||||
var score = 0
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
start_button.show()
|
|
||||||
game_over.hide()
|
game_over.hide()
|
||||||
|
start_button.show()
|
||||||
# spawn_enemies()
|
# spawn_enemies()
|
||||||
|
|
||||||
func new_game():
|
|
||||||
score = 0
|
|
||||||
$CanvasLayer/UI.update_score(score)
|
|
||||||
$Player.start()
|
|
||||||
spawn_enemies()
|
|
||||||
|
|
||||||
func spawn_enemies():
|
func spawn_enemies():
|
||||||
for x in range(9):
|
for x in range(9):
|
||||||
for y in range(3):
|
for y in range(3):
|
||||||
|
|
@ -24,19 +19,28 @@ func spawn_enemies():
|
||||||
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)
|
||||||
e.died.connect(_on_enemy_died)
|
EventBus.enemy_died.emit()
|
||||||
|
|
||||||
func _on_enemy_died(value):
|
func _on_enemy_died(value):
|
||||||
score += value
|
score += value
|
||||||
$CanvasLayer/UI.update_score(score)
|
$CanvasLayer/UI.update_score(score)
|
||||||
|
|
||||||
func _on_player_died():
|
func _on_player_died():
|
||||||
|
print("game over")
|
||||||
|
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()
|
||||||
|
|
||||||
|
func new_game():
|
||||||
|
score = 0
|
||||||
|
$CanvasLayer/UI.update_score(score)
|
||||||
|
$Player.start()
|
||||||
|
spawn_enemies()
|
||||||
|
playing = true
|
||||||
|
|
||||||
func _on_start_pressed():
|
func _on_start_pressed():
|
||||||
start_button.hide()
|
start_button.hide()
|
||||||
new_game()
|
new_game()
|
||||||
|
|
|
||||||
|
|
@ -60,10 +60,7 @@ 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="." instance=ExtResource("2_0xm2m")]
|
||||||
position = Vector2(123, 270)
|
position = Vector2(123, 272)
|
||||||
max_shield = null
|
|
||||||
speed = null
|
|
||||||
cooldown = null
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
libraries = {
|
libraries = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
extends Area2D
|
extends Area2D
|
||||||
|
|
||||||
signal died
|
|
||||||
signal damage_taken
|
signal damage_taken
|
||||||
# signal shield_damage
|
# signal shield_damage
|
||||||
# signal shield_ui
|
# signal shield_ui
|
||||||
|
|
@ -62,14 +62,14 @@ func set_shield(value: int):
|
||||||
var old_value: int = shield
|
var old_value: int = shield
|
||||||
shield = min(max_shield, value)
|
shield = min(max_shield, value)
|
||||||
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
||||||
# shield_damage.emit() # Don't need this anymore since switching to event_bus.gd
|
print("Shield set to:", shield)
|
||||||
if shield <= 0:
|
if shield <= 0:
|
||||||
set_process(false)
|
set_process(false)
|
||||||
$Ship.hide()
|
$Ship.hide()
|
||||||
$Explosion.show()
|
$Explosion.show()
|
||||||
$Explosion/AnimationPlayer.play("explosion-one-shot")
|
$Explosion/AnimationPlayer.play("explosion-one-shot")
|
||||||
await $Explosion/AnimationPlayer.animation_finished
|
await $Explosion/AnimationPlayer.animation_finished
|
||||||
died.emit()
|
EventBus.player_died.emit()
|
||||||
|
|
||||||
func _on_gun_cooldown_timeout() -> void:
|
func _on_gun_cooldown_timeout() -> void:
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
|
|
||||||
9
ui.gd
9
ui.gd
|
|
@ -17,14 +17,6 @@ func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
||||||
|
|
||||||
shield_bar.max_value = max_value
|
shield_bar.max_value = max_value
|
||||||
shield_bar.value = new_value
|
shield_bar.value = new_value
|
||||||
|
|
||||||
print("update_shield"," ","Current ",(new_value), " ", "(Max ",(max_value),")"," ","Old Value:"," ",(old_value))
|
|
||||||
|
|
||||||
if new_value >= max_value:
|
|
||||||
print("No need to tween!")
|
|
||||||
|
|
||||||
else:
|
|
||||||
print("I should be tweening!")
|
|
||||||
var shield_depletion = int(old_value - new_value)
|
var shield_depletion = int(old_value - new_value)
|
||||||
print("Shield Depletion:", old_value, "-", new_value, " = ", shield_depletion)
|
print("Shield Depletion:", old_value, "-", new_value, " = ", shield_depletion)
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
|
|
@ -35,7 +27,6 @@ func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
||||||
|
|
||||||
|
|
||||||
func _on_shield_ui():
|
func _on_shield_ui():
|
||||||
print("SHIELD FX!")
|
|
||||||
shader_active = true
|
shader_active = true
|
||||||
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
||||||
await get_tree().create_timer(1).timeout
|
await get_tree().create_timer(1).timeout
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue