Added game pallete explosions to player and chickens; adjusted parallax

layer speed via speed scale.
This commit is contained in:
Henry 2026-02-14 23:54:54 +00:00
parent 2a7e1a2b6c
commit 1da24eb0e6
8 changed files with 207 additions and 16 deletions

View file

@ -46,12 +46,11 @@ func _process(delta):
func explode():
if exploding: return
exploding = true
print_debug("Enemy explode!")
EventBus.enemy_hit.emit(5)
speed = 0
#$AnimationPlayer.play("explode")
$AnimationPlayer.play("explode")
#set_deferred("monitoring", false)
#await $AnimationPlayer.animation_finished
await $AnimationPlayer.animation_finished
queue_free()
EventBus.enemy_died.emit()

View file

@ -2,9 +2,10 @@
[ext_resource type="Script" uid="uid://i0r17jo6838m" path="res://scenes/enemy_chicken.gd" id="1_s7c3p"]
[ext_resource type="Texture2D" uid="uid://cy4jggxmnohbb" path="res://sprites/chicken.png" id="2_h1rgn"]
[ext_resource type="Texture2D" uid="uid://bm7fgqwqfqmf4" path="res://sprites/explosion_pallete-swap.png" id="3_s7c3p"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4gyqm"]
size = Vector2(21, 23)
size = Vector2(28.57145, 28.571442)
[sub_resource type="Animation" id="Animation_h1rgn"]
length = 0.001
@ -20,6 +21,118 @@ tracks/0/keys = {
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("2_h1rgn")]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:hframes")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [3]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite2D:region_rect")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Rect2(0, 0, 84, 32)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AnimationPlayer:speed_scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
[sub_resource type="Animation" id="Animation_7ellt"]
resource_name = "explode"
step = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("3_s7c3p")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:hframes")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [5]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite2D:region_rect")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Rect2(0, 0, 80, 16)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("AnimationPlayer:speed_scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.5]
}
[sub_resource type="Animation" id="Animation_s7c3p"]
resource_name = "flap"
@ -37,10 +150,47 @@ tracks/0/keys = {
"update": 1,
"values": [0, 1, 2]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("2_h1rgn")]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:hframes")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [3]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite2D:region_rect")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Rect2(0, 0, 84, 32)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7ellt"]
_data = {
&"RESET": SubResource("Animation_h1rgn"),
&"explode": SubResource("Animation_7ellt"),
&"flap": SubResource("Animation_s7c3p")
}
@ -49,13 +199,15 @@ scale = Vector2(0.7, 0.7)
script = ExtResource("1_s7c3p")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2115910138]
scale = Vector2(1.44, 1.44)
texture = ExtResource("2_h1rgn")
hframes = 3
region_enabled = true
region_rect = Rect2(0, 0, 84, 32)
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1841693239]
scale = Vector2(1.5384617, 1.5384617)
position = Vector2(4.257474e-07, 1.702989e-07)
scale = Vector2(0.99999917, 0.99999917)
shape = SubResource("RectangleShape2D_4gyqm")
[node name="MoveTimer" type="Timer" parent="." unique_id=1928257014]

View file

@ -12,13 +12,13 @@ func _on_goose_talk(frame_index: int):
if goose_talking == false:
print("QUACK")
#goose_talking = true
self.show()
$DapperGoose/Bubble.set_frame(frame_index)
var tween = create_tween()
tween.tween_property(self, "position:x", position.x - 50, .5).set_ease(tween.EASE_OUT)
await tween.finished
$DapperGoose/Bubble.show()
goose_talking = true
$DapperGoose/Quacking.start()
await $DapperGoose/Quacking.timeout
$DapperGoose/Bubble.hide()
@ -35,11 +35,8 @@ func _on_goose_talk(frame_index: int):
$DapperGoose/Quacking.start()
await $DapperGoose/Quacking.timeout
$DapperGoose/Bubble.hide()
goose_talking = false
tween = create_tween()
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
await tween.finished
self.hide()
goose_talking = false
self.hide()

View file

@ -8,7 +8,7 @@ z_index = -100
[node name="Foreground" type="Parallax2D" parent="." unique_id=1810383542]
self_modulate = Color(0.09185078, 0.09185078, 0.09185078, 1)
z_index = 5
scroll_scale = Vector2(-1, 1)
scroll_scale = Vector2(1, 2.5)
scroll_offset = Vector2(-88, -1)
repeat_size = Vector2(0, 64)
autoscroll = Vector2(0, 12)
@ -33,7 +33,7 @@ region_rect = Rect2(0, 0, 64, 64)
[node name="Midground A" type="Parallax2D" parent="." unique_id=808073040]
z_index = 4
scroll_scale = Vector2(-1, 1)
scroll_scale = Vector2(-1, 1.75)
scroll_offset = Vector2(-87, -1)
repeat_size = Vector2(0, 64)
autoscroll = Vector2(0, 6)
@ -82,10 +82,10 @@ frame = 1
region_rect = Rect2(0, 0, 64, 64)
[node name="Background Nothing" type="Parallax2D" parent="." unique_id=603653601]
scroll_scale = Vector2(1.5, 1)
scroll_scale = Vector2(1.5, -2)
scroll_offset = Vector2(-89, -27)
repeat_size = Vector2(0, 32)
autoscroll = Vector2(0, 3)
autoscroll = Vector2(0, 1.5)
repeat_times = 11
[node name="Sprite2D" type="Sprite2D" parent="Background Nothing" unique_id=2117909699]

View file

@ -9,6 +9,7 @@
[ext_resource type="Texture2D" uid="uid://cjv3xbuj65pav" path="res://_graphics/Mini Pixel Pack 3/Player ship/Boosters_right (16 x 16).png" id="5_b26j0"]
[ext_resource type="PackedScene" uid="uid://4jvu41vu2557" path="res://scenes/explosion.tscn" id="8_dw050"]
[ext_resource type="Texture2D" uid="uid://bnc77g20gb20h" path="res://sprites/david-head.png" id="8_ur7pv"]
[ext_resource type="Texture2D" uid="uid://bm7fgqwqfqmf4" path="res://sprites/explosion_pallete-swap.png" id="10_d2wvv"]
[ext_resource type="AudioStream" uid="uid://d3ejo2dfxblsx" path="res://sounds/HeadInflatePOP.wav" id="10_y4r1p"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b26j0"]
@ -135,7 +136,9 @@ shape = SubResource("RectangleShape2D_op7ga")
one_shot = true
[node name="Explosion" parent="." unique_id=321630316 instance=ExtResource("8_dw050")]
visible = false
texture = ExtResource("10_d2wvv")
region_enabled = true
region_rect = Rect2(0, 0, 96, 16)
[node name="HeadInflate" type="AudioStreamPlayer2D" parent="." unique_id=374500278]
stream = ExtResource("10_y4r1p")

BIN
sprites/explode.res Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bm7fgqwqfqmf4"
path="res://.godot/imported/explosion_pallete-swap.png-07dc02f3238c83fc8bbae592b7a3f8c2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/explosion_pallete-swap.png"
dest_files=["res://.godot/imported/explosion_pallete-swap.png-07dc02f3238c83fc8bbae592b7a3f8c2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1