diff --git a/assets/PlayerCharacter.aseprite b/assets/PlayerCharacter.aseprite index e26fca9..ddafb94 100644 Binary files a/assets/PlayerCharacter.aseprite and b/assets/PlayerCharacter.aseprite differ diff --git a/assets/PlayerCharacter.aseprite.import b/assets/PlayerCharacter.aseprite.import index d29f2f0..017a825 100644 --- a/assets/PlayerCharacter.aseprite.import +++ b/assets/PlayerCharacter.aseprite.import @@ -2,7 +2,7 @@ importer="aseprite_wizard.plugin.noop" type="PackedDataContainer" -uid="uid://bye3fycptipre" +uid="uid://bvqvl7ho7segv" path="res://.godot/imported/PlayerCharacter.aseprite-1bf420fc00cecceb6a9caea06a8e4ec7.res" [deps] diff --git a/assets/export/playerLayer 3.png b/assets/export/playerLayer 3.png index 3b2f095..85f831f 100644 Binary files a/assets/export/playerLayer 3.png and b/assets/export/playerLayer 3.png differ diff --git a/assets/export/viruling-.png b/assets/export/viruling-.png new file mode 100644 index 0000000..d0bd133 Binary files /dev/null and b/assets/export/viruling-.png differ diff --git a/assets/export/viruling-.png.import b/assets/export/viruling-.png.import new file mode 100644 index 0000000..607a33b --- /dev/null +++ b/assets/export/viruling-.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djjun1p0rx1ap" +path="res://.godot/imported/viruling-.png-8fb78d1c45ba4ef1a534dca658b128b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/export/viruling-.png" +dest_files=["res://.godot/imported/viruling-.png-8fb78d1c45ba4ef1a534dca658b128b9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/assets/stage1.png b/assets/stage1.png new file mode 100644 index 0000000..ab0cb7c Binary files /dev/null and b/assets/stage1.png differ diff --git a/assets/stage1.png.import b/assets/stage1.png.import new file mode 100644 index 0000000..a93b31c --- /dev/null +++ b/assets/stage1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5h2tl1fqgje5" +path="res://.godot/imported/stage1.png-67df7ec0db7c207f872533da29fcbf5c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/stage1.png" +dest_files=["res://.godot/imported/stage1.png-67df7ec0db7c207f872533da29fcbf5c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/assets/viruling_spin.aseprite b/assets/viruling_spin.aseprite new file mode 100644 index 0000000..7684d87 Binary files /dev/null and b/assets/viruling_spin.aseprite differ diff --git a/assets/viruling_spin.aseprite.import b/assets/viruling_spin.aseprite.import new file mode 100644 index 0000000..59f36f6 --- /dev/null +++ b/assets/viruling_spin.aseprite.import @@ -0,0 +1,14 @@ +[remap] + +importer="aseprite_wizard.plugin.noop" +type="PackedDataContainer" +uid="uid://2g8hbnap6s5a" +path="res://.godot/imported/viruling_spin.aseprite-2addb3a6357cbfdfd34eecd5833985aa.res" + +[deps] + +source_file="res://assets/viruling_spin.aseprite" +dest_files=["res://.godot/imported/viruling_spin.aseprite-2addb3a6357cbfdfd34eecd5833985aa.res"] + +[params] + diff --git a/components/Pla724B.tmp b/components/Pla724B.tmp new file mode 100644 index 0000000..51b326a --- /dev/null +++ b/components/Pla724B.tmp @@ -0,0 +1,364 @@ +[gd_scene load_steps=45 format=3 uid="uid://cjiuycwqqxaxn"] + +[ext_resource type="Script" path="res://scripts/player.gd" id="1_oy25y"] +[ext_resource type="Texture2D" uid="uid://cownabyc1p26u" path="res://assets/export/playerLayer 3.png" id="2_5c6qp"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_6hs0l"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7slh2"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_io1xr"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vh4hn"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wwamw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nens7"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xnw82"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sv3rw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kldb3"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_daegq"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c3qy7"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5iowx"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2f5nd"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xuig4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uk8ao"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6wkkf"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mecdt"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pvo15"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fcvkv"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ejt0g"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l4s6u"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qw5vg"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_agdq2"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1qa8b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a5wcc"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5ra6k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l1grw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gae7w"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p0xeb"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tuo0l"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iygu1"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nlq48"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_581d4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_depii"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nsu0f"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kdf7b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvo1k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nuos6"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fgj7i"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 192, 32, 64) + +[sub_resource type="SpriteFrames" id="SpriteFrames_o2lgd"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_6hs0l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7slh2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_io1xr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vh4hn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wwamw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nens7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xnw82") +}], +"loop": true, +"name": &" punch", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kldb3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daegq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c3qy7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5iowx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2f5nd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xuig4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uk8ao") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daegq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kldb3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}], +"loop": true, +"name": &"Jump", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6wkkf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mecdt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pvo15") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fcvkv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ejt0g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l4s6u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qw5vg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_agdq2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1qa8b") +}], +"loop": true, +"name": &"idle", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_a5wcc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5ra6k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l1grw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gae7w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p0xeb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tuo0l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iygu1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nlq48") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_581d4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_depii") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nsu0f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kdf7b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dvo1k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nuos6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fgj7i") +}], +"loop": true, +"name": &"walk", +"speed": 10.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_0on8q"] +size = Vector2(28, 64) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"] +size = Vector2(22, 41) + +[node name="Player" type="CharacterBody2D"] +collision_mask = 3 +script = ExtResource("1_oy25y") +SPEED = null +GRAVITY = null +JUMP_FORCE = null + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_o2lgd") +animation = &" punch" +frame_progress = 0.777568 +metadata/_aseprite_wizard_config_ = { +"layer": "Layer 3", +"o_ex_p": "", +"o_folder": "res://assets/export", +"o_name": "player", +"only_visible": false, +"slice": "", +"source": "res://assets/PlayerCharacter.aseprite" +} +metadata/_aseprite_wizard_source_file_hash_ = "dd5426320f333c1fca2ec67ca43f9db7" +metadata/_aseprite_wizard_interface_config_ = { +"layer_section": true, +"output_section": true +} + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(2, 0) +shape = SubResource("RectangleShape2D_0on8q") +debug_color = Color(1, 0.254902, 0.415686, 0.105882) + +[node name="AttackTimer" type="Timer" parent="."] +editor_description = " + +" +wait_time = 0.2 +one_shot = true + +[node name="PunchHitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PunchHitbox"] +position = Vector2(15, -4.5) +shape = SubResource("RectangleShape2D_mst3b") +debug_color = Color(2.11775e-06, 0.631094, 0.465774, 0.42) diff --git a/components/PlaCFBF.tmp b/components/PlaCFBF.tmp new file mode 100644 index 0000000..83baea0 --- /dev/null +++ b/components/PlaCFBF.tmp @@ -0,0 +1,364 @@ +[gd_scene load_steps=45 format=3 uid="uid://cjiuycwqqxaxn"] + +[ext_resource type="Script" path="res://scripts/player.gd" id="1_oy25y"] +[ext_resource type="Texture2D" uid="uid://cownabyc1p26u" path="res://assets/export/playerLayer 3.png" id="2_5c6qp"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_6hs0l"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7slh2"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_io1xr"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vh4hn"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wwamw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nens7"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xnw82"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sv3rw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kldb3"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_daegq"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c3qy7"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5iowx"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2f5nd"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xuig4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uk8ao"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6wkkf"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mecdt"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pvo15"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fcvkv"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ejt0g"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l4s6u"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qw5vg"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_agdq2"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1qa8b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a5wcc"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5ra6k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l1grw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gae7w"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p0xeb"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tuo0l"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iygu1"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nlq48"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_581d4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_depii"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nsu0f"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kdf7b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvo1k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nuos6"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fgj7i"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 192, 32, 64) + +[sub_resource type="SpriteFrames" id="SpriteFrames_o2lgd"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_6hs0l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7slh2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_io1xr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vh4hn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wwamw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nens7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xnw82") +}], +"loop": true, +"name": &" punch", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kldb3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daegq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c3qy7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5iowx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2f5nd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xuig4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uk8ao") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daegq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kldb3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}], +"loop": true, +"name": &"Jump", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6wkkf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mecdt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pvo15") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fcvkv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ejt0g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l4s6u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qw5vg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_agdq2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1qa8b") +}], +"loop": true, +"name": &"idle", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_a5wcc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5ra6k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l1grw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gae7w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p0xeb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tuo0l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iygu1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nlq48") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_581d4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_depii") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nsu0f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kdf7b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dvo1k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nuos6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fgj7i") +}], +"loop": true, +"name": &"walk", +"speed": 10.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_0on8q"] +size = Vector2(28, 64) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"] +size = Vector2(22, 41) + +[node name="Player" type="CharacterBody2D"] +collision_mask = 3 +script = ExtResource("1_oy25y") +SPEED = null +GRAVITY = null +JUMP_FORCE = null + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_o2lgd") +animation = &" punch" +frame_progress = 0.573795 +metadata/_aseprite_wizard_config_ = { +"layer": "Layer 3", +"o_ex_p": "", +"o_folder": "res://assets/export", +"o_name": "player", +"only_visible": false, +"slice": "", +"source": "res://assets/PlayerCharacter.aseprite" +} +metadata/_aseprite_wizard_source_file_hash_ = "dd5426320f333c1fca2ec67ca43f9db7" +metadata/_aseprite_wizard_interface_config_ = { +"layer_section": true, +"output_section": true +} + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(2, 0) +shape = SubResource("RectangleShape2D_0on8q") +debug_color = Color(1, 0.254902, 0.415686, 0.105882) + +[node name="AttackTimer" type="Timer" parent="."] +editor_description = " + +" +wait_time = 0.2 +one_shot = true + +[node name="PunchHitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PunchHitbox"] +position = Vector2(15, -4.5) +shape = SubResource("RectangleShape2D_mst3b") +debug_color = Color(2.11775e-06, 0.631094, 0.465774, 0.42) diff --git a/components/Player.tscn b/components/Player.tscn index 145b3e1..86780b2 100644 --- a/components/Player.tscn +++ b/components/Player.tscn @@ -1,168 +1,260 @@ -[gd_scene load_steps=37 format=3 uid="uid://cjiuycwqqxaxn"] +[gd_scene load_steps=45 format=3 uid="uid://cjiuycwqqxaxn"] [ext_resource type="Script" path="res://scripts/player.gd" id="1_oy25y"] [ext_resource type="Texture2D" uid="uid://cownabyc1p26u" path="res://assets/export/playerLayer 3.png" id="2_5c6qp"] -[sub_resource type="AtlasTexture" id="AtlasTexture_unh28"] -atlas = ExtResource("2_5c6qp") -region = Rect2(0, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_06hsv"] -atlas = ExtResource("2_5c6qp") -region = Rect2(32, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_75rwr"] -atlas = ExtResource("2_5c6qp") -region = Rect2(64, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ithwi"] -atlas = ExtResource("2_5c6qp") -region = Rect2(96, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ylpmh"] -atlas = ExtResource("2_5c6qp") -region = Rect2(128, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_s5fe3"] -atlas = ExtResource("2_5c6qp") -region = Rect2(160, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_371nq"] -atlas = ExtResource("2_5c6qp") -region = Rect2(0, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_w5q6j"] -atlas = ExtResource("2_5c6qp") -region = Rect2(32, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_gq465"] -atlas = ExtResource("2_5c6qp") -region = Rect2(64, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ushcs"] -atlas = ExtResource("2_5c6qp") -region = Rect2(96, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_v6ggy"] -atlas = ExtResource("2_5c6qp") -region = Rect2(32, 256, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_2q2n8"] -atlas = ExtResource("2_5c6qp") -region = Rect2(64, 256, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_j8nd3"] -atlas = ExtResource("2_5c6qp") -region = Rect2(96, 256, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_wqlee"] +[sub_resource type="AtlasTexture" id="AtlasTexture_6hs0l"] atlas = ExtResource("2_5c6qp") region = Rect2(128, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_liu5q"] +[sub_resource type="AtlasTexture" id="AtlasTexture_7slh2"] atlas = ExtResource("2_5c6qp") region = Rect2(160, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_fy414"] +[sub_resource type="AtlasTexture" id="AtlasTexture_io1xr"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vh4hn"] atlas = ExtResource("2_5c6qp") region = Rect2(0, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_vpy4r"] +[sub_resource type="AtlasTexture" id="AtlasTexture_wwamw"] atlas = ExtResource("2_5c6qp") region = Rect2(32, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_bu1yd"] +[sub_resource type="AtlasTexture" id="AtlasTexture_nens7"] atlas = ExtResource("2_5c6qp") -region = Rect2(128, 64, 32, 64) +region = Rect2(64, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_yxpbn"] +[sub_resource type="AtlasTexture" id="AtlasTexture_xnw82"] atlas = ExtResource("2_5c6qp") -region = Rect2(160, 64, 32, 64) +region = Rect2(96, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_np4p4"] +[sub_resource type="AtlasTexture" id="AtlasTexture_sv3rw"] atlas = ExtResource("2_5c6qp") -region = Rect2(0, 128, 32, 64) +region = Rect2(0, 0, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_onkmm"] -atlas = ExtResource("2_5c6qp") -region = Rect2(32, 128, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_0r4ck"] -atlas = ExtResource("2_5c6qp") -region = Rect2(64, 128, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_h7t71"] -atlas = ExtResource("2_5c6qp") -region = Rect2(96, 128, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_dtkph"] -atlas = ExtResource("2_5c6qp") -region = Rect2(128, 128, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jerwg"] -atlas = ExtResource("2_5c6qp") -region = Rect2(160, 128, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_02mrb"] -atlas = ExtResource("2_5c6qp") -region = Rect2(0, 192, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_a53i7"] -atlas = ExtResource("2_5c6qp") -region = Rect2(32, 192, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3afct"] -atlas = ExtResource("2_5c6qp") -region = Rect2(64, 192, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_urkyt"] -atlas = ExtResource("2_5c6qp") -region = Rect2(96, 192, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jjvw0"] +[sub_resource type="AtlasTexture" id="AtlasTexture_kldb3"] atlas = ExtResource("2_5c6qp") region = Rect2(128, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_s3yi7"] +[sub_resource type="AtlasTexture" id="AtlasTexture_daegq"] atlas = ExtResource("2_5c6qp") region = Rect2(160, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_t4j8f"] +[sub_resource type="AtlasTexture" id="AtlasTexture_c3qy7"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5iowx"] atlas = ExtResource("2_5c6qp") region = Rect2(0, 256, 32, 64) -[sub_resource type="SpriteFrames" id="SpriteFrames_f2tke"] +[sub_resource type="AtlasTexture" id="AtlasTexture_2f5nd"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xuig4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uk8ao"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 256, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6wkkf"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mecdt"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pvo15"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fcvkv"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ejt0g"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l4s6u"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qw5vg"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_agdq2"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1qa8b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a5wcc"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5ra6k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l1grw"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gae7w"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p0xeb"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tuo0l"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iygu1"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nlq48"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_581d4"] +atlas = ExtResource("2_5c6qp") +region = Rect2(128, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_depii"] +atlas = ExtResource("2_5c6qp") +region = Rect2(160, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nsu0f"] +atlas = ExtResource("2_5c6qp") +region = Rect2(192, 128, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kdf7b"] +atlas = ExtResource("2_5c6qp") +region = Rect2(0, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvo1k"] +atlas = ExtResource("2_5c6qp") +region = Rect2(32, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nuos6"] +atlas = ExtResource("2_5c6qp") +region = Rect2(64, 192, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fgj7i"] +atlas = ExtResource("2_5c6qp") +region = Rect2(96, 192, 32, 64) + +[sub_resource type="SpriteFrames" id="SpriteFrames_o2lgd"] animations = [{ "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_unh28") +"texture": SubResource("AtlasTexture_6hs0l") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_06hsv") +"texture": SubResource("AtlasTexture_7slh2") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_75rwr") +"texture": SubResource("AtlasTexture_io1xr") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ithwi") +"texture": SubResource("AtlasTexture_vh4hn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ylpmh") +"texture": SubResource("AtlasTexture_wwamw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_s5fe3") +"texture": SubResource("AtlasTexture_nens7") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_371nq") +"texture": SubResource("AtlasTexture_xnw82") +}], +"loop": true, +"name": &" punch", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_w5q6j") +"texture": SubResource("AtlasTexture_kldb3") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_gq465") +"texture": SubResource("AtlasTexture_daegq") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ushcs") +"texture": SubResource("AtlasTexture_c3qy7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5iowx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2f5nd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xuig4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uk8ao") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daegq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kldb3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}], +"loop": true, +"name": &"Jump", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sv3rw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6wkkf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mecdt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pvo15") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fcvkv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ejt0g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l4s6u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qw5vg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_agdq2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1qa8b") }], "loop": true, "name": &"idle", @@ -170,87 +262,49 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_unh28") +"texture": SubResource("AtlasTexture_a5wcc") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_v6ggy") +"texture": SubResource("AtlasTexture_5ra6k") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_2q2n8") +"texture": SubResource("AtlasTexture_l1grw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_j8nd3") +"texture": SubResource("AtlasTexture_gae7w") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_wqlee") +"texture": SubResource("AtlasTexture_p0xeb") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_liu5q") +"texture": SubResource("AtlasTexture_tuo0l") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_fy414") +"texture": SubResource("AtlasTexture_iygu1") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_vpy4r") +"texture": SubResource("AtlasTexture_nlq48") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_2q2n8") +"texture": SubResource("AtlasTexture_581d4") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_v6ggy") +"texture": SubResource("AtlasTexture_depii") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_unh28") -}], -"loop": true, -"name": &"jump", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_bu1yd") +"texture": SubResource("AtlasTexture_nsu0f") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_yxpbn") +"texture": SubResource("AtlasTexture_kdf7b") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_np4p4") +"texture": SubResource("AtlasTexture_dvo1k") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_onkmm") +"texture": SubResource("AtlasTexture_nuos6") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_0r4ck") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_h7t71") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_dtkph") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jerwg") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_02mrb") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_a53i7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3afct") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_urkyt") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jjvw0") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_s3yi7") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_t4j8f") +"texture": SubResource("AtlasTexture_fgj7i") }], "loop": true, "name": &"walk", @@ -260,14 +314,18 @@ animations = [{ [sub_resource type="RectangleShape2D" id="RectangleShape2D_0on8q"] size = Vector2(28, 64) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"] +size = Vector2(27, 41) + [node name="Player" type="CharacterBody2D"] +collision_mask = 3 script = ExtResource("1_oy25y") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] texture_filter = 1 -sprite_frames = SubResource("SpriteFrames_f2tke") -animation = &"jump" -frame_progress = 0.0204075 +sprite_frames = SubResource("SpriteFrames_o2lgd") +animation = &" punch" +frame_progress = 0.126525 metadata/_aseprite_wizard_config_ = { "layer": "Layer 3", "o_ex_p": "", @@ -277,7 +335,7 @@ metadata/_aseprite_wizard_config_ = { "slice": "", "source": "res://assets/PlayerCharacter.aseprite" } -metadata/_aseprite_wizard_source_file_hash_ = "e4930daa975c704a60a92789b7fbe76d" +metadata/_aseprite_wizard_source_file_hash_ = "dd5426320f333c1fca2ec67ca43f9db7" metadata/_aseprite_wizard_interface_config_ = { "layer_section": true, "output_section": true @@ -287,3 +345,17 @@ metadata/_aseprite_wizard_interface_config_ = { position = Vector2(2, 0) shape = SubResource("RectangleShape2D_0on8q") debug_color = Color(1, 0.254902, 0.415686, 0.105882) + +[node name="AttackTimer" type="Timer" parent="."] +editor_description = " + +" +wait_time = 0.5 +one_shot = true + +[node name="PunchHitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PunchHitbox"] +position = Vector2(29, -3) +shape = SubResource("RectangleShape2D_mst3b") +debug_color = Color(2.11775e-06, 0.631094, 0.465774, 0.42) diff --git a/components/Viruling.tscn b/components/Viruling.tscn new file mode 100644 index 0000000..e307acc --- /dev/null +++ b/components/Viruling.tscn @@ -0,0 +1,215 @@ +[gd_scene load_steps=27 format=3 uid="uid://bxbpvgteyfh02"] + +[ext_resource type="Script" path="res://scripts/viruling.gd" id="1_eevnl"] +[ext_resource type="Texture2D" uid="uid://djjun1p0rx1ap" path="res://assets/export/viruling-.png" id="1_i45rj"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_gi7h4"] +radius = 17.0294 + +[sub_resource type="AtlasTexture" id="AtlasTexture_kidce"] +atlas = ExtResource("1_i45rj") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qe36s"] +atlas = ExtResource("1_i45rj") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ngfqf"] +atlas = ExtResource("1_i45rj") +region = Rect2(64, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nii03"] +atlas = ExtResource("1_i45rj") +region = Rect2(96, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tkn6b"] +atlas = ExtResource("1_i45rj") +region = Rect2(128, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2r8jg"] +atlas = ExtResource("1_i45rj") +region = Rect2(0, 128, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0s3k4"] +atlas = ExtResource("1_i45rj") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2h71d"] +atlas = ExtResource("1_i45rj") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_45yd5"] +atlas = ExtResource("1_i45rj") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6isb8"] +atlas = ExtResource("1_i45rj") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m6d0y"] +atlas = ExtResource("1_i45rj") +region = Rect2(0, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kp48x"] +atlas = ExtResource("1_i45rj") +region = Rect2(32, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rhh7o"] +atlas = ExtResource("1_i45rj") +region = Rect2(64, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0l2ip"] +atlas = ExtResource("1_i45rj") +region = Rect2(96, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u0o6v"] +atlas = ExtResource("1_i45rj") +region = Rect2(128, 32, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hh53s"] +atlas = ExtResource("1_i45rj") +region = Rect2(0, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g0xj4"] +atlas = ExtResource("1_i45rj") +region = Rect2(32, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_smgex"] +atlas = ExtResource("1_i45rj") +region = Rect2(64, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_efhl8"] +atlas = ExtResource("1_i45rj") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_smw3b"] +atlas = ExtResource("1_i45rj") +region = Rect2(128, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hc7x2"] +atlas = ExtResource("1_i45rj") +region = Rect2(0, 96, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_01e4m"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_kidce") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qe36s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ngfqf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nii03") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tkn6b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2r8jg") +}], +"loop": true, +"name": &"death", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_kidce") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0s3k4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2h71d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_45yd5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6isb8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m6d0y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kp48x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rhh7o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kidce") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0l2ip") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u0o6v") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hh53s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g0xj4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_smgex") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_efhl8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_smw3b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hc7x2") +}], +"loop": true, +"name": &"spin", +"speed": 10.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_kpyhc"] +radius = 16.0 + +[node name="Viruling" type="CharacterBody2D"] +collision_layer = 3 +collision_mask = 2 +script = ExtResource("1_eevnl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_gi7h4") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_01e4m") +animation = &"spin" +metadata/_aseprite_wizard_config_ = { +"layer": "", +"o_ex_p": "", +"o_folder": "res://assets/export", +"o_name": "viruling-", +"only_visible": true, +"slice": "", +"source": "res://assets/viruling_spin.aseprite" +} +metadata/_aseprite_wizard_source_file_hash_ = "e9452ba317bc3563d2373e8b9d673cef" +metadata/_aseprite_wizard_interface_config_ = { +"output_section": true +} + +[node name="ContactHitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="ContactHitbox"] +shape = SubResource("CircleShape2D_kpyhc") +debug_color = Color(0.972226, 0, 0.442516, 0.42) + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[node name="DeathTimer" type="Timer" parent="."] +wait_time = 0.55 +one_shot = true diff --git a/levels/level1/sta35D.tmp b/levels/level1/sta35D.tmp new file mode 100644 index 0000000..b4c1689 --- /dev/null +++ b/levels/level1/sta35D.tmp @@ -0,0 +1,53 @@ +[gd_scene load_steps=8 format=3 uid="uid://cei5gjgfoginb"] + +[ext_resource type="Script" path="res://scripts/stageController.gd" id="1_m1n7w"] +[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_48003"] +[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="2_sxo5w"] +[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="3_04xvl"] +[ext_resource type="PackedScene" uid="uid://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"] + +[sub_resource type="QuadMesh" id="QuadMesh_seics"] +size = Vector2(480, 64) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_h5wua"] +size = Vector2(480, 106) + +[node name="World" type="Node2D"] +position = Vector2(272, 240) +script = ExtResource("1_m1n7w") +next_stage = "res://levels/level1/stage2.tscn" + +[node name="Background" type="Sprite2D" parent="."] +position = Vector2(-32, -64) +texture = ExtResource("2_48003") + +[node name="Borders" parent="." instance=ExtResource("3_04xvl")] +position = Vector2(-272, -240) + +[node name="Player" parent="." instance=ExtResource("2_sxo5w")] +position = Vector2(-240, -16) + +[node name="Viruling" parent="." instance=ExtResource("5_w7lww")] +position = Vector2(179, -13) + +[node name="Floor" type="StaticBody2D" parent="."] + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Floor"] +position = Vector2(-32, 68) +scale = Vector2(1, 1.625) +mesh = SubResource("QuadMesh_seics") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"] +position = Vector2(-32, 69) +shape = SubResource("RectangleShape2D_h5wua") + +[node name="Ceiling" type="StaticBody2D" parent="."] + +[node name="MeshInstance2D" type="MeshInstance2D" parent="Ceiling"] +position = Vector2(-32, -192) +scale = Vector2(1, 1.625) +mesh = SubResource("QuadMesh_seics") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"] +position = Vector2(-32, -192) +shape = SubResource("RectangleShape2D_h5wua") diff --git a/levels/level1/stage1.tscn b/levels/level1/stage1.tscn index 0a11c60..b4c1689 100644 --- a/levels/level1/stage1.tscn +++ b/levels/level1/stage1.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://cei5gjgfoginb"] +[gd_scene load_steps=8 format=3 uid="uid://cei5gjgfoginb"] [ext_resource type="Script" path="res://scripts/stageController.gd" id="1_m1n7w"] [ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_48003"] [ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="2_sxo5w"] [ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="3_04xvl"] +[ext_resource type="PackedScene" uid="uid://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"] [sub_resource type="QuadMesh" id="QuadMesh_seics"] size = Vector2(480, 64) @@ -26,6 +27,9 @@ position = Vector2(-272, -240) [node name="Player" parent="." instance=ExtResource("2_sxo5w")] position = Vector2(-240, -16) +[node name="Viruling" parent="." instance=ExtResource("5_w7lww")] +position = Vector2(179, -13) + [node name="Floor" type="StaticBody2D" parent="."] [node name="MeshInstance2D" type="MeshInstance2D" parent="Floor"] diff --git a/levels/level1/viruling_spin.png b/levels/level1/viruling_spin.png new file mode 100644 index 0000000..9813107 Binary files /dev/null and b/levels/level1/viruling_spin.png differ diff --git a/levels/level1/viruling_spin.png.import b/levels/level1/viruling_spin.png.import new file mode 100644 index 0000000..77bed4a --- /dev/null +++ b/levels/level1/viruling_spin.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvbxf3x6puy5g" +path="res://.godot/imported/viruling_spin.png-26548e6c2f4f147be3bf58cb66e1ebef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://levels/level1/viruling_spin.png" +dest_files=["res://.godot/imported/viruling_spin.png-26548e6c2f4f147be3bf58cb66e1ebef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/project.godot b/project.godot index a23dcd6..b4cd030 100644 --- a/project.godot +++ b/project.godot @@ -77,3 +77,9 @@ quit={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +attack={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(311, 12),"global_position":Vector2(320, 58),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +} diff --git a/scripts/entity.gd b/scripts/entity.gd new file mode 100644 index 0000000..81a9710 --- /dev/null +++ b/scripts/entity.gd @@ -0,0 +1,33 @@ +class_name Entity extends CharacterBody2D + +@export var health = null +@export var speed = null +@export var damage = null +@export var kb_speed = null + +func _init(initial_health: int, speed_multiplier: int, attack_damage: int) -> void: + health = initial_health + speed = speed_multiplier + damage = attack_damage + kb_speed = 0 + +func _physics_process(delta: float) -> void: + var init_velocity = velocity + + velocity.x = 0 + velocity.y = 0 + + if init_velocity.x == 0: + init_velocity.x = 1 + + if kb_speed > 0: + velocity.x = -sign(init_velocity.x) * kb_speed + kb_speed = 0 + + move_and_slide() + + velocity = init_velocity + +func take_knockback(speed: int) -> void: + kb_speed = speed + diff --git a/scripts/player.gd b/scripts/player.gd index ddf8032..0cd049c 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -1,18 +1,32 @@ -extends CharacterBody2D +extends Entity -@export var SPEED = 300 @export var GRAVITY = 30 @export var JUMP_FORCE = 500 -@onready var animated_sprite = $AnimatedSprite2D; +@onready var animated_sprite = $AnimatedSprite2D +@onready var attack_timer = $AttackTimer +@onready var collider = $CollisionShape2D +@onready var punch_hitbox = $PunchHitbox -var jumping = false; -var facing_right = true; +var jumping = false +var facing_right = true + +const ATTACK_DAMAGE = 25 +const INITIAL_HEALTH = 100 +const SPEED_MULTIPLIER = 300 +const ATTACK_KNOCKBACK = 5000 + +func _init() -> void: + super._init(INITIAL_HEALTH, SPEED_MULTIPLIER, ATTACK_DAMAGE) func _ready(): animated_sprite.play("idle") + punch_hitbox.body_entered.connect(punch_connect) + punch_hitbox.visible = false func _physics_process(delta): + super._physics_process(delta) + if is_on_floor(): # allow the player to jump if jumping: @@ -30,7 +44,7 @@ func _physics_process(delta): # perform horizontal movement var horizontal_direction = Input.get_axis("move_left", "move_right") - velocity.x = SPEED * horizontal_direction + velocity.x = speed * horizontal_direction move_and_slide() # ensure the player faces the correct direction @@ -44,8 +58,20 @@ func _physics_process(delta): # figure out which animation should be played # respecting the jump animation above all - if !jumping: + if !jumping and attack_timer.is_stopped(): if is_on_floor() && horizontal_direction != 0: animated_sprite.play("walk") else: animated_sprite.play("idle") + + punch_hitbox.visible = true if !attack_timer.is_stopped() else false + +func punch_connect(node: Node): + if node is Entity and node != self and !attack_timer.is_stopped(): + node.health -= damage + node.take_knockback(ATTACK_KNOCKBACK) + +func _process(delta: float) -> void: + if attack_timer.is_stopped() and Input.is_action_just_pressed("attack"): + attack_timer.start() + animated_sprite.play(" punch") # TODO: Implement hitbox/endlag diff --git a/scripts/viruling.gd b/scripts/viruling.gd new file mode 100644 index 0000000..c1b63d4 --- /dev/null +++ b/scripts/viruling.gd @@ -0,0 +1,52 @@ +extends Entity; + +@onready var animated_sprite = $AnimatedSprite2D +@onready var collider = $CollisionShape2D +@onready var contact_hitbox = $ContactHitbox +@onready var collision_shape = collider.shape +@onready var attack_timer = $Timer +@onready var is_dying = false +@onready var death_timer = $DeathTimer + +const SPEED_MULTIPLIER = 100 +const INITIAL_HEALTH = 10 +const ATTACK_DAMAGE = 10 +const ATTACK_KNOCKBACK = 5000 + +func _init() -> void: + super._init(INITIAL_HEALTH, SPEED_MULTIPLIER, ATTACK_DAMAGE) + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + velocity.x = -speed + contact_hitbox.body_entered.connect(body_connect) + contact_hitbox.visible = false + animated_sprite.play("spin") + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta: float) -> void: + if !is_dying: + contact_hitbox.visible = false if contact_hitbox.visible else true + super._physics_process(delta) + velocity.x = -speed + move_and_slide() + +func _process(delta: float) -> void: + if health <= 0: + is_dying = true + death_timer.start() + health = 99999 + + if is_dying: + animated_sprite.play("death") + contact_hitbox.visible = false + speed = 0 + + if death_timer.is_stopped(): + queue_free() + +func body_connect(node: Node): + if node is Entity and node != self and attack_timer.is_stopped(): + attack_timer.start(0.25) + node.health -= damage + take_knockback(ATTACK_KNOCKBACK)