From 1f44bce8644aa850cd4627477fe2e40fc566e944 Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Sun, 14 Dec 2025 18:11:18 -0500 Subject: [PATCH] bug --- audio/sounds/se_boom.wav | Bin 0 -> 54884 bytes audio/sounds/se_boom.wav.import | 24 ++++++ graphics/player/player_1.png | Bin 0 -> 923 bytes graphics/player/player_1.png.import | 40 ++++++++++ graphics/player/player_2.png | Bin 0 -> 919 bytes graphics/player/player_2.png.import | 40 ++++++++++ graphics/player/player_3.png | Bin 0 -> 906 bytes graphics/player/player_3.png.import | 40 ++++++++++ objects/bullet_emitter/test_bullet_emitter.gd | 2 +- objects/bullet_types/test_bullet.tscn | 12 ++- objects/player/player.gd | 8 +- objects/player/player.tscn | 70 ++++++++++++++++-- project.godot | 6 +- scenes/test_scene.tscn | 13 ++++ 14 files changed, 245 insertions(+), 10 deletions(-) create mode 100644 audio/sounds/se_boom.wav create mode 100644 audio/sounds/se_boom.wav.import create mode 100644 graphics/player/player_1.png create mode 100644 graphics/player/player_1.png.import create mode 100644 graphics/player/player_2.png create mode 100644 graphics/player/player_2.png.import create mode 100644 graphics/player/player_3.png create mode 100644 graphics/player/player_3.png.import create mode 100644 scenes/test_scene.tscn diff --git a/audio/sounds/se_boom.wav b/audio/sounds/se_boom.wav new file mode 100644 index 0000000000000000000000000000000000000000..4287ee56dac30191797743673eacfb85c230b618 GIT binary patch literal 54884 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 literal 0 HcmV?d00001 diff --git a/audio/sounds/se_boom.wav.import b/audio/sounds/se_boom.wav.import new file mode 100644 index 0000000..59c5638 --- /dev/null +++ b/audio/sounds/se_boom.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b3byh6su1b11r" +path="res://.godot/imported/se_boom.wav-330226db5bbd147fe6d9f88a513e8f11.sample" + +[deps] + +source_file="res://audio/sounds/se_boom.wav" +dest_files=["res://.godot/imported/se_boom.wav-330226db5bbd147fe6d9f88a513e8f11.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/graphics/player/player_1.png b/graphics/player/player_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a2df0047e417e6125022a24a7dd650a55df4095a GIT binary patch literal 923 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbQ|Pfw48y**U<|*;yf=C_gPTCzXLg zdLYGEk*_u5HGEPmbB_b#(udBa2X;Ef{wT$hB3EFb*s*{8|ObBD<```;a@=N7dL zK_;t@@D>zs^gP$B-g|cU?&#;=p3COfO{imV+FCSuVY%&cV7zDr_=LFD)lKT@UHtUv zr}^`@@7;HMF9XAT1_l-X$;Xy5{J+7Vlek^J&q9iy!t)x7$D3u`~F*C13&(AeP!Bo#s&*=9a z=50VVJ*g3%X`Y^13>-iXD}xjxD+42t zlvW}f6;kx8>CnlxDv{Znc)0~;cV*dX^&TnkPso~Vlsq*h&4nT9mS7vFk9yIzvM!&) zOp8}(D+c$}~ z-`IVldreYf-{c?pLNcjLAHVTwGus^BpU}e}u~4i?I(XJ1kWV~a{an^LB{Ts5?9yof literal 0 HcmV?d00001 diff --git a/graphics/player/player_1.png.import b/graphics/player/player_1.png.import new file mode 100644 index 0000000..de986b1 --- /dev/null +++ b/graphics/player/player_1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cre6i8tsdlt7j" +path="res://.godot/imported/player_1.png-93a8dc738741f5e9373da5817d7a849b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/player/player_1.png" +dest_files=["res://.godot/imported/player_1.png-93a8dc738741f5e9373da5817d7a849b.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 diff --git a/graphics/player/player_2.png b/graphics/player/player_2.png new file mode 100644 index 0000000000000000000000000000000000000000..611c20832d7747582c37d2f41b1bb25847d05d4c GIT binary patch literal 919 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbQ|Pfw48y**U<|*;yf=C_gPTCzXLg zdLYGEk*_u5HGEPmbB_b#(udBa2X;Ef{wT$hB3EFb*s*{8|ObBD<```;a@=N7dL zK_;t@@D>zs^gP$B-g|cU?&#;=p3COfO{imV+FCSuVY%&cV7zDr_=LFD)lKT@UHtUv zr}^`@@7;HMF9XAT1_l-X$;Xy5{J+7Vlek^J&q9iy!t)x7$D3u`~F*C13&(AeP!Bo#s&*=9a z=50VVJ*g3%X`Y^13>-iXD}xjxD+42t4*`Y3Qszp^V-(sL#sgZY|OHmZteiWIa~+Xyh&ZQi@}t`3uM z&*JZ8^VWV>ZsGjJV%x&NA!E~ZcPc}HRQ@*6LI!1qfAbG0^KIBGEccU1b+uj7^p=OQ vACz8ydLYGEk*_u5HGEPmbB_b#(udBa2X;Ef{wT$hB3EFb*s*{8|ObBD<```;a@=N7dL zK_;t@@D>zs^gP$B-g|cU?&#;=p3COfO{imV+FCSuVY%&cV7zDr_=LFD)lKT@UHtUv zr}^`@@7;HMF9XAT1_l-X$;Xy5{J+5%FBlnqKz8jQ?faV8+!kdcW&07ypxab`OU zSUd~J27%r(Mur!_ga@P1EM)-dpTN$*0#s>WWNg5=0AlL@|6t7wb3C%M=k`eglPAM` zPZ!4!jo_&h8~F|^aJV>b30d|3|8DE3EvIj(-BsoKWYO#O*HNEA@vGo1<0O8*XO9@> z99jKF^;D<-gjU0;s>&)p%o7%Ldqr}Uij}iFm`AzRh_~G=We}QW#lv`E`L1ibR<$KI z+&lYfTj=J9eT-+fXPG^Zm=TA;hwI3F6*2UngA$zV*LOB literal 0 HcmV?d00001 diff --git a/graphics/player/player_3.png.import b/graphics/player/player_3.png.import new file mode 100644 index 0000000..3e77140 --- /dev/null +++ b/graphics/player/player_3.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cr8jegbgl0wxn" +path="res://.godot/imported/player_3.png-99cd0b18553d1a1e86f956802601092f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/player/player_3.png" +dest_files=["res://.godot/imported/player_3.png-99cd0b18553d1a1e86f956802601092f.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 diff --git a/objects/bullet_emitter/test_bullet_emitter.gd b/objects/bullet_emitter/test_bullet_emitter.gd index 7d8080e..855019f 100644 --- a/objects/bullet_emitter/test_bullet_emitter.gd +++ b/objects/bullet_emitter/test_bullet_emitter.gd @@ -2,6 +2,6 @@ extends BulletEmitter func _on_timer_timeout() -> void: - for i in range(500): + for i in range(50): emit_bullets() %AudioStreamPlayer.play() diff --git a/objects/bullet_types/test_bullet.tscn b/objects/bullet_types/test_bullet.tscn index 34bf3a2..e5945c7 100644 --- a/objects/bullet_types/test_bullet.tscn +++ b/objects/bullet_types/test_bullet.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://je8ntnqgk0p6"] +[gd_scene load_steps=9 format=3 uid="uid://je8ntnqgk0p6"] [ext_resource type="Script" uid="uid://dgrxej0tqnnfd" path="res://objects/bullet_types/test_bullet.gd" id="1_nd7f1"] [ext_resource type="Texture2D" uid="uid://du7gh3nk66mpo" path="res://graphics/bullets/normal_bullet/bullet_1.png" id="2_gcdq1"] @@ -46,6 +46,9 @@ animations = [{ "speed": 20.0 }] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ic0v5"] +size = Vector2(8, 8) + [node name="TestBullet" type="Node2D"] script = ExtResource("1_nd7f1") @@ -63,4 +66,11 @@ frame_progress = 0.21053335 [node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] rect = Rect2(-4, -4, 8, 8) +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 8 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("RectangleShape2D_ic0v5") + [connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="queue_free"] diff --git a/objects/player/player.gd b/objects/player/player.gd index d08198b..cc21c70 100644 --- a/objects/player/player.gd +++ b/objects/player/player.gd @@ -5,7 +5,7 @@ extends CharacterBody2D @export_group("Movement", "move_") @export var move_normal_speed: float @export var move_focused_speed: float - +@onready var startpos = position var focused: bool: get(): return Input.is_action_pressed(&"focus") @@ -15,5 +15,9 @@ func _physics_process(delta: float) -> void: var input_dir = Input.get_vector(&"move_left", &"move_right", &"move_up", &"move_down").sign() velocity = input_dir.normalized() * (move_focused_speed if focused else move_normal_speed) - move_and_slide() + + +func _on_hurtbox_area_entered(area: Area2D) -> void: + %DeathSound.play() + position = startpos diff --git a/objects/player/player.tscn b/objects/player/player.tscn index 15926c2..16b11d9 100644 --- a/objects/player/player.tscn +++ b/objects/player/player.tscn @@ -1,21 +1,81 @@ -[gd_scene load_steps=5 format=3 uid="uid://c714s5d7d5765"] +[gd_scene load_steps=11 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://c82cpqafy7a23" path="res://testship.png" id="2_ssrue"] +[ext_resource type="Texture2D" uid="uid://cre6i8tsdlt7j" path="res://graphics/player/player_1.png" id="2_jnjyq"] +[ext_resource type="Texture2D" uid="uid://cr8jegbgl0wxn" path="res://graphics/player/player_3.png" id="3_gnkmh"] [ext_resource type="PackedScene" uid="uid://bs0tv5ubqdjp0" path="res://objects/player/bullet_emitter/player_bullet_emitter.tscn" id="3_ssrue"] +[ext_resource type="AudioStream" uid="uid://b3byh6su1b11r" path="res://audio/sounds/se_boom.wav" id="5_gnkmh"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_xkryw"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_jnjyq") +}, { +"duration": 1.0, +"texture": ExtResource("3_gnkmh") +}], +"loop": true, +"name": &"default", +"speed": 9.0 +}] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ssrue"] -size = Vector2(24, 24) +size = Vector2(20, 19) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ow0dq"] +size = Vector2(4, 4) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jnjyq"] +size = Vector2(22, 22) + +[sub_resource type="CircleShape2D" id="CircleShape2D_gnkmh"] +radius = 5.0990195 [node name="Player" type="CharacterBody2D"] +collision_layer = 2 script = ExtResource("1_cqmt1") move_normal_speed = 200.0 move_focused_speed = 100.0 -[node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("2_ssrue") +[node name="Sprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_xkryw") +frame_progress = 0.64341116 [node name="Collision" type="CollisionShape2D" parent="."] +position = Vector2(0, -0.5) shape = SubResource("RectangleShape2D_ssrue") +debug_color = Color(0.48012203, 0.5821042, 0.20594019, 0.41960785) [node name="PlayerBulletEmitter" parent="." instance=ExtResource("3_ssrue")] +bullet_scene = null + +[node name="Hurtbox" type="Area2D" parent="."] +position = Vector2(0, -1) +collision_layer = 2 +collision_mask = 8 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"] +shape = SubResource("RectangleShape2D_ow0dq") +debug_color = Color(1, 0, 0, 0.44313726) + +[node name="CollectionBox" type="Area2D" parent="."] +collision_layer = 2 +collision_mask = 32 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CollectionBox"] +position = Vector2(0, -0.5) +shape = SubResource("RectangleShape2D_jnjyq") + +[node name="GrazeBox" type="Area2D" parent="."] +position = Vector2(0, -1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="GrazeBox"] +shape = SubResource("CircleShape2D_gnkmh") +debug_color = Color(0.7740294, 0.14773864, 0.99999994, 0.41960785) + +[node name="DeathSound" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("5_gnkmh") + +[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"] diff --git a/project.godot b/project.godot index cb59843..9e2b1ff 100644 --- a/project.godot +++ b/project.godot @@ -76,9 +76,13 @@ focus={ [layer_names] -2d_physics/layer_1="obstacle" +2d_physics/layer_1="collision" 2d_physics/layer_2="player" 2d_physics/layer_3="player_bullet" +2d_physics/layer_4="hurt_player" +2d_physics/layer_5="enemy" +2d_physics/layer_6="powerup" +2d_physics/layer_7="graze" [rendering] diff --git a/scenes/test_scene.tscn b/scenes/test_scene.tscn new file mode 100644 index 0000000..7a7a3c6 --- /dev/null +++ b/scenes/test_scene.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://cfn5pgsewhaof"] + +[ext_resource type="Texture2D" uid="uid://c50bfqprpitev" path="res://icon.svg" id="1_g7g4h"] +[ext_resource type="PackedScene" uid="uid://c714s5d7d5765" path="res://objects/player/player.tscn" id="2_j8ivh"] + +[node name="TestScene" type="Node"] + +[node name="Icon" type="Sprite2D" parent="."] +position = Vector2(110, 187) +texture = ExtResource("1_g7g4h") + +[node name="Player" parent="." instance=ExtResource("2_j8ivh")] +position = Vector2(100, 99)