game saving like for real, bad guy movement, player damage, player death, ui with controls labels

This commit is contained in:
OddlyTimbot committed 2025-11-10 21:17:58 -05:00
1 parent d5c87727b9
commit 208d93f5b4
19 files changed
+521 -26

No files matched your search

+24 -15
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=22 format=4 uid="uid://cy1i6ucex6m0d"]
[gd_scene load_steps=23 format=4 uid="uid://cy1i6ucex6m0d"]
[ext_resource type="PackedScene" uid="uid://qv8blu8wkqvq" path="res://scenes/crate.tscn" id="1_uwrxv"]
[ext_resource type="Texture2D" uid="uid://drigbyu4w5ppu" path="res://assets/graphics/environment/terrain/airplane.png" id="2_0tnpc"]
@@ -12,6 +12,7 @@
[ext_resource type="Texture2D" uid="uid://bgiw80mpxbcgh" path="res://assets/graphics/environment/terrain/veg_32x32.png" id="4_vtaks"]
[ext_resource type="Texture2D" uid="uid://bqj8chrd5i5iw" path="res://assets/graphics/environment/terrain/mushroom_32x64.png" id="5_kvpfn"]
[ext_resource type="PackedScene" uid="uid://dxocmoeuu32ex" path="res://scenes/coin.tscn" id="13_kvuet"]
[ext_resource type="PackedScene" uid="uid://ck553kksdq0ku" path="res://scenes/ui.tscn" id="14_ir15t"]
[ext_resource type="PackedScene" uid="uid://ccx1uakpj5143" path="res://scenes/slime.tscn" id="14_trtic"]
[sub_resource type="TileMapPattern" id="TileMapPattern_p57ef"]
@@ -448,7 +449,7 @@ texture = ExtResource("2_0tnpc")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
texture_filter = 1
tile_map_data = PackedByteArray("AAAWAA4AAAAEAAIAAAAWAA0AAAAPAAMAAAAXAA0AAAAQAAQAAAAXAAwAAAAEAAAAAAAZAAwAAAAAAAQAAAAZAAoAAAAAAAQAAAAcAAoAAAACAAQAAAAbAAoAAAABAAQAAAAaAAwAAAAKAAMAAAAbAAwAAAAJAAMAAAAcAAwAAAACAAQAAAAbAA0AAAACAAIAAAAaAA0AAAAAAAIAAAD//wcAAAAAAAAAAAD//wgAAAAAAAIAAAAAAAcAAAABAAAAAAACAAsAAAAAAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAACAAAAAAAGAAwAAAACAAIAAAAFAAwAAAABAAIAAAAEAAwAAAABAAIAAAADAAwAAAABAAIAAAACAAwAAAAAAAIAAAANAAsAAAACAAQAAAAMAAsAAAABAAQAAAALAAsAAAAAAAQAAAAKAA0AAAACAAQAAAAJAA0AAAAAAAQAAAASAA4AAAACAAQAAAARAA4AAAAPAAMAAAARAA8AAAAEAAIAAAAaAAoAAAABAAQAAAAEABEAAAAAAAAAAAAFABEAAAABAAAAAAAGABEAAAABAAAAAAAHABEAAAABAAAAAAAIABEAAAABAAAAAAAJABEAAAABAAAAAAAKABEAAAABAAAAAAALABEAAAABAAAAAAAMABEAAAABAAAAAAANABEAAAABAAAAAAAOABEAAAABAAAAAAAPABEAAAABAAAAAAAQABEAAAABAAAAAAARABEAAAABAAAAAAASABEAAAABAAAAAAATABEAAAABAAAAAAAUABEAAAABAAAAAAAVABEAAAABAAAAAAAWABEAAAABAAAAAAAXABEAAAABAAAAAAAYABEAAAABAAAAAAAZABEAAAAHAAEAAAAaABEAAAAGAAAAAAAbABEAAAABAAIAAAAcABEAAAABAAIAAAAdABEAAAACAAIAAAAZABAAAAAAAAAAAAAaABAAAAABAAAAAAAbABAAAAABAAAAAAAcABAAAAABAAAAAAAdABAAAAAHAAQAAAAdAA8AAAAEAAAAAAABAAcAAAABAAAAAAACAAcAAAACAAAAAAABAAgAAAABAAIAAAAAAAgAAAABAAIAAAACAAgAAAACAAIAAAAJAAwAAQAAAAAAAAADAAoAAQAAAAAAAAAXAAsAAQAAAAAAAAARAA0AAgAAAAEAAAARAAwAAgAAAAAAAAAZAAkAAgAAAAEAAAAZAAgAAgAAAAAAAAAaAAkAAQAAAAAAAAAaAA8AAQAAAAAAAAAZAA8AAQAAAAAAAAAMABAAAQAAAAAAAAALABAAAgAAAAEAAAALAA8AAgAAAAAAAAAFABAAAgAAAAEAAAAFAA8AAgAAAAAAAAACAAYAAgAAAAEAAAACAAUAAgAAAAAAAAAbAAkAAgAAAAEAAAAbAAgAAgAAAAAAAAAEABIAAAAAAAIAAAAFABIAAAABAAIAAAAGABIAAAABAAIAAAAHABIAAAABAAIAAAAIABIAAAABAAIAAAAJABIAAAABAAIAAAAKABIAAAABAAIAAAALABIAAAABAAIAAAAMABIAAAABAAIAAAANABIAAAABAAIAAAAOABIAAAABAAIAAAAPABIAAAABAAIAAAAQABIAAAABAAIAAAARABIAAAABAAIAAAASABIAAAABAAIAAAATABIAAAABAAIAAAAUABIAAAABAAIAAAAVABIAAAABAAIAAAAWABIAAAABAAIAAAAaABIAAAACAAIAAAAZABIAAAABAAIAAAAYABIAAAABAAIAAAAXABIAAAABAAIAAAA=")
tile_map_data = PackedByteArray("AAAWAA4AAAAEAAIAAAAWAA0AAAAPAAMAAAAXAA0AAAAQAAQAAAAXAAwAAAAEAAAAAAAZAAwAAAAAAAQAAAAZAAoAAAAAAAQAAAAcAAoAAAACAAQAAAAbAAoAAAABAAQAAAAaAAwAAAAKAAMAAAAbAAwAAAAJAAMAAAAcAAwAAAACAAQAAAAbAA0AAAACAAIAAAAaAA0AAAAAAAIAAAD//wcAAAAAAAAAAAD//wgAAAAAAAIAAAAAAAcAAAABAAAAAAACAAsAAAAAAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAACAAAAAAAGAAwAAAACAAIAAAAFAAwAAAABAAIAAAAEAAwAAAABAAIAAAADAAwAAAABAAIAAAACAAwAAAAAAAIAAAANAAsAAAABAAQAAAAMAAsAAAABAAQAAAALAAsAAAABAAQAAAAKAA0AAAACAAQAAAAJAA0AAAAAAAQAAAASAA4AAAACAAQAAAARAA4AAAAPAAMAAAARAA8AAAAEAAIAAAAaAAoAAAABAAQAAAAEABEAAAAAAAAAAAAFABEAAAABAAAAAAAGABEAAAABAAAAAAAHABEAAAABAAAAAAAIABEAAAABAAAAAAAJABEAAAABAAAAAAAKABEAAAABAAAAAAALABEAAAABAAAAAAAMABEAAAABAAAAAAANABEAAAABAAAAAAAOABEAAAABAAAAAAAPABEAAAABAAAAAAAQABEAAAABAAAAAAARABEAAAABAAAAAAASABEAAAABAAAAAAATABEAAAABAAAAAAAUABEAAAABAAAAAAAVABEAAAABAAAAAAAWABEAAAABAAAAAAAXABEAAAABAAAAAAAYABEAAAABAAAAAAAZABEAAAAHAAEAAAAaABEAAAAGAAAAAAAbABEAAAABAAIAAAAcABEAAAABAAIAAAAdABEAAAACAAIAAAAZABAAAAAAAAAAAAAaABAAAAABAAAAAAAbABAAAAABAAAAAAAcABAAAAABAAAAAAAdABAAAAAHAAQAAAAdAA8AAAAEAAAAAAABAAcAAAABAAAAAAACAAcAAAACAAAAAAABAAgAAAABAAIAAAAAAAgAAAABAAIAAAACAAgAAAACAAIAAAAJAAwAAQAAAAAAAAADAAoAAQAAAAAAAAAXAAsAAQAAAAAAAAARAA0AAgAAAAEAAAARAAwAAgAAAAAAAAAZAAkAAgAAAAEAAAAZAAgAAgAAAAAAAAAaAAkAAQAAAAAAAAAaAA8AAQAAAAAAAAAZAA8AAQAAAAAAAAAMABAAAQAAAAAAAAALABAAAgAAAAEAAAALAA8AAgAAAAAAAAAFABAAAgAAAAEAAAAFAA8AAgAAAAAAAAACAAYAAgAAAAEAAAACAAUAAgAAAAAAAAAbAAkAAgAAAAEAAAAbAAgAAgAAAAAAAAAEABIAAAAAAAIAAAAFABIAAAABAAIAAAAGABIAAAABAAIAAAAHABIAAAABAAIAAAAIABIAAAABAAIAAAAJABIAAAABAAIAAAAKABIAAAABAAIAAAALABIAAAABAAIAAAAMABIAAAABAAIAAAANABIAAAABAAIAAAAOABIAAAABAAIAAAAPABIAAAABAAIAAAAQABIAAAABAAIAAAARABIAAAABAAIAAAASABIAAAABAAIAAAATABIAAAABAAIAAAAUABIAAAABAAIAAAAVABIAAAABAAIAAAAWABIAAAABAAIAAAAaABIAAAACAAIAAAAZABIAAAABAAIAAAAYABIAAAABAAIAAAAXABIAAAABAAIAAAAKAAsAAAAPAAQAAAAOAAsAAAACAAQAAAAKAAoAAAAEAAAAAAA=")
tile_set = SubResource("TileSet_vtaks")
[node name="SceneManager" type="Node2D" parent="."]
@@ -480,17 +481,6 @@ metadata/_edit_group_ = true
position = Vector2(0, 7.5)
shape = SubResource("RectangleShape2D_8cj0n")
[node name="Crate" parent="." groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(353.8211, 281.4275)
[node name="Crate2" parent="." groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(445.03278, 293.44574)
rotation = -0.7766715
[node name="Crate3" parent="." groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(254.5908, 285.43356)
rotation = 0.51836276
[node name="Boundary" type="StaticBody2D" parent="."]
position = Vector2(400.93042, 633.96295)
metadata/_edit_group_ = true
@@ -505,7 +495,7 @@ position = Vector2(575.3352, 798.21246)
position = Vector2(93.216324, 715.08624)
intent = "powerup"
[node name="CharacterBody2D" parent="." instance=ExtResource("3_lnu2h")]
[node name="Player" parent="." instance=ExtResource("3_lnu2h")]
position = Vector2(397.92346, 341.51877)
BUMP_POWER = 50
@@ -516,7 +506,7 @@ position = Vector2(192.44662, 340.51724)
scale = Vector2(1, 1.0000001)
[node name="Coin2" parent="Coins" instance=ExtResource("13_kvuet")]
position = Vector2(435.00952, 343.5218)
position = Vector2(337.78387, 311.4731)
scale = Vector2(1, 1.0000001)
[node name="Enemies" type="Node2D" parent="."]
@@ -537,5 +527,24 @@ scale = Vector2(1, 1.0000001)
position = Vector2(374.86996, 339.51575)
scale = Vector2(1, 1.0000001)
[node name="Crates" type="Node2D" parent="."]
[node name="Crate" parent="Crates" groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(353.82114, 281.4275)
scale = Vector2(1, 1.0000001)
[node name="Crate2" parent="Crates" groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(479.11194, 288.4382)
rotation = -0.7766715
scale = Vector2(1.0000001, 1)
[node name="Crate3" parent="Crates" groups=["pushable", "splodable"] instance=ExtResource("1_uwrxv")]
position = Vector2(254.5908, 285.4336)
rotation = 0.51836276
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="ui" parent="CanvasLayer" instance=ExtResource("14_ir15t")]
[connection signal="triggerFiredSignal" from="Trigger" to="." method="_on_trigger_fired"]
[connection signal="triggerFiredSignal" from="Trigger2" to="." method="_on_trigger_fired"]
+112 -4
View File
@@ -1,17 +1,75 @@
[gd_scene load_steps=32 format=3 uid="uid://b1yy0sybg66hh"]
[gd_scene load_steps=48 format=3 uid="uid://b1yy0sybg66hh"]
[ext_resource type="Script" uid="uid://kv8w1gwuy3il" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://c4pynj40whop7" path="res://assets/graphics/player/death/Player Death 64x64.png" id="2_fjrip"]
[ext_resource type="Texture2D" uid="uid://vr36ruu3ew70" path="res://assets/graphics/player/idle/Player Idle 48x48 (1).png" id="2_g2els"]
[ext_resource type="Texture2D" uid="uid://dr8leuj7yjpmo" path="res://assets/graphics/player/jumpandfall/player jump 48x48.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://n60s2ffy25hc" path="res://assets/graphics/player/hurt/Player Hurt 48x48.png" id="3_tuyoq"]
[ext_resource type="Texture2D" uid="uid://gat5giebysdj" path="res://assets/graphics/player/run/player run 48x48.png" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://csmss00eyd21r" path="res://assets/graphics/player/shove/Player Punch 64x64.png" id="5_qlg0r"]
[sub_resource type="CircleShape2D" id="CircleShape2D_3vyb7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wnwbv"]
atlas = ExtResource("2_fjrip")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_gl8cc"]
atlas = ExtResource("2_fjrip")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_487ah"]
atlas = ExtResource("2_fjrip")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_md1ol"]
atlas = ExtResource("2_fjrip")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_bj30b"]
atlas = ExtResource("2_fjrip")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_jc3p3"]
atlas = ExtResource("2_fjrip")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_hax0n"]
atlas = ExtResource("2_fjrip")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_t4otl"]
atlas = ExtResource("2_fjrip")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_j2b1d"]
atlas = ExtResource("2_fjrip")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_cs1tg"]
atlas = ExtResource("2_fjrip")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_jej6c"]
atlas = ExtResource("2_qhqgy")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_31cv2"]
atlas = ExtResource("3_tuyoq")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_pf23h"]
atlas = ExtResource("3_tuyoq")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_dt7fs"]
atlas = ExtResource("3_tuyoq")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_wqfne"]
atlas = ExtResource("3_tuyoq")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qhqgy"]
atlas = ExtResource("2_g2els")
region = Rect2(0, 0, 48, 48)
@@ -108,6 +166,41 @@ region = Rect2(320, 0, 64, 64)
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wnwbv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gl8cc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_487ah")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_md1ol")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bj30b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jc3p3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hax0n")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t4otl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j2b1d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cs1tg")
}],
"loop": false,
"name": &"death",
"speed": 3.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jej6c")
}],
"loop": false,
@@ -116,6 +209,23 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_31cv2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pf23h")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dt7fs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wqfne")
}],
"loop": false,
"name": &"hurt",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_qhqgy")
}, {
"duration": 1.0,
@@ -230,10 +340,8 @@ one_shot = true
texture_filter = 1
position = Vector2(0, -6)
sprite_frames = SubResource("SpriteFrames_jej6c")
animation = &"shove"
animation = &"death"
autoplay = "idle"
frame = 1
frame_progress = 0.25700366
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2(0, -30)
+1 -1
View File
@@ -45,7 +45,7 @@ size = Vector2(14, 15)
[node name="Slime" type="Area2D"]
script = ExtResource("1_p2gj0")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
[node name="SlimeGraphic" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_fd6lc")
animation = &"idle"
+47
View File
@@ -0,0 +1,47 @@
[gd_scene load_steps=2 format=3 uid="uid://ck553kksdq0ku"]
[ext_resource type="Script" uid="uid://8ysbh26qa33o" path="res://scripts/ui.gd" id="1_nt7q6"]
[node name="ui" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_nt7q6")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="health" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer"]
layout_mode = 2
text = "Health"
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="timer" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer2"]
layout_mode = 2
text = "Timer"
horizontal_alignment = 1
[node name="MarginContainer3" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="coins" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer3"]
layout_mode = 2
text = "Coins"
horizontal_alignment = 2