added proper respawn (fixes #4)

This commit is contained in:
pennyrigate 2026-01-01 17:54:53 -05:00
parent 81b01b7508
commit 5ce3dc929b
2 changed files with 77 additions and 2 deletions

View file

@ -22,6 +22,7 @@ func _physics_process(delta: float) -> void:
func _on_hurtbox_area_entered(area: Area2D) -> void:
if can_die:
%DeathSound.play()
%AnimationPlayer.play("respawn")
position = startpos
CurrentGame.change_lives(-1)
can_die = false
@ -33,3 +34,8 @@ func _on_graze_box_area_entered(area: Area2D) -> void:
%GrazeParticles.emitting = true
CurrentGame.change_graze(1)
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == "respawn":
can_die = true

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://c714s5d7d5765"]
[gd_scene load_steps=15 format=3 uid="uid://c714s5d7d5765"]
[ext_resource type="Script" uid="uid://bpo15kuxdmulu" path="res://objects/player/player.gd" id="1_cqmt1"]
[ext_resource type="Texture2D" uid="uid://cre6i8tsdlt7j" path="res://graphics/player/player_1.png" id="2_jnjyq"]
@ -33,6 +33,68 @@ size = Vector2(22, 22)
[sub_resource type="CircleShape2D" id="CircleShape2D_gnkmh"]
radius = 13.038404
[sub_resource type="Animation" id="Animation_xkryw"]
resource_name = "respawn"
length = 5.0
step = 0.0333333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1, 1.0666666, 1.1333334, 1.2, 1.2666667, 1.3333333, 1.4000001, 1.4666667, 1.5333333, 1.5999999, 1.6666667, 1.7333333, 1.8, 1.8666666, 1.9333334, 2, 2.0666666, 2.1333332, 2.1999998, 2.2666664, 2.333333, 2.3999996, 2.4666667, 2.5333333, 2.6, 2.6666665, 2.7333336, 2.8000002, 2.8666668, 2.9333334, 3, 3.0666666, 3.1333332, 3.1999998, 3.2666664, 3.333333, 3.3999996, 3.4666662, 3.5333333, 3.6, 3.6666665, 3.733333, 3.8000002, 3.8666668, 3.9333334, 4, 4.0666666, 4.133333, 4.2, 4.2666664, 4.333333, 4.3999996, 4.466666, 4.533333, 4.6, 4.6666665, 4.733333, 4.7999997, 4.866667, 4.9333334, 5, 5.0666666, 5.133333, 5.2, 5.266667, 5.3333335, 5.4, 5.4666667, 5.5333333, 5.6, 5.666667, 5.7333336, 5.8, 5.866667, 5.933334, 6.0000005, 6.066667, 6.1333337, 6.2000003, 6.266667, 6.3333335, 6.4, 6.4666667, 6.5333333, 6.6, 6.6666665, 6.733333, 6.8000007, 6.8666663, 6.933334, 7, 7.0666676, 7.133333, 7.200001, 7.2666664, 7.333334, 7.3999996, 7.466667, 7.533333, 7.6000004, 7.666666, 7.7333336, 7.800001, 7.866667, 7.9333344, 8, 8.066668, 8.133333, 8.200001, 8.266666, 8.333334, 8.4, 8.466667, 8.533333, 8.6, 8.666666, 8.733334, 8.799999, 8.866667, 8.933334, 9, 9.066668, 9.133333, 9.200001, 9.266666, 9.333334, 9.4, 9.466667, 9.533333),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_ow0dq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m4kly"]
_data = {
&"RESET": SubResource("Animation_ow0dq"),
&"respawn": SubResource("Animation_xkryw")
}
[node name="Player" type="CharacterBody2D" groups=["player"]]
collision_layer = 2
script = ExtResource("1_cqmt1")
@ -42,7 +104,7 @@ move_focused_speed = 100.0
[node name="Sprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_xkryw")
autoplay = "default"
frame_progress = 0.64341116
frame_progress = 0.6766526
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -0.5)
@ -85,6 +147,13 @@ unique_name_in_owner = true
amount = 10
script = null
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_m4kly")
}
[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"]
[connection signal="area_entered" from="GrazeBox" to="." method="_on_graze_box_area_entered"]
[connection signal="finished" from="GrazeParticles" to="." method="_on_cpu_particles_2d_finished"]
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]