feat: viruling behaviour, entity class, melee attacks #1

Merged
newt merged 1 commit from abstralexis/gmtk-2024:main into main 2024-08-17 19:59:55 +00:00
21 changed files with 1484 additions and 179 deletions
Showing only changes of commit 7c090d600b - Show all commits

Binary file not shown.

View file

@ -2,7 +2,7 @@
importer="aseprite_wizard.plugin.noop" importer="aseprite_wizard.plugin.noop"
type="PackedDataContainer" type="PackedDataContainer"
uid="uid://bye3fycptipre" uid="uid://bvqvl7ho7segv"
path="res://.godot/imported/PlayerCharacter.aseprite-1bf420fc00cecceb6a9caea06a8e4ec7.res" path="res://.godot/imported/PlayerCharacter.aseprite-1bf420fc00cecceb6a9caea06a8e4ec7.res"
[deps] [deps]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

BIN
assets/export/viruling-.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

@ -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

BIN
assets/stage1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

34
assets/stage1.png.import Normal file
View file

@ -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

Binary file not shown.

View file

@ -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]

364
components/Pla724B.tmp Normal file
View file

@ -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)

364
components/PlaCFBF.tmp Normal file
View file

@ -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)

View file

@ -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="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"] [ext_resource type="Texture2D" uid="uid://cownabyc1p26u" path="res://assets/export/playerLayer 3.png" id="2_5c6qp"]
[sub_resource type="AtlasTexture" id="AtlasTexture_unh28"] [sub_resource type="AtlasTexture" id="AtlasTexture_6hs0l"]
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"]
atlas = ExtResource("2_5c6qp") atlas = ExtResource("2_5c6qp")
region = Rect2(128, 256, 32, 64) region = Rect2(128, 256, 32, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_liu5q"] [sub_resource type="AtlasTexture" id="AtlasTexture_7slh2"]
atlas = ExtResource("2_5c6qp") atlas = ExtResource("2_5c6qp")
region = Rect2(160, 256, 32, 64) 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") atlas = ExtResource("2_5c6qp")
region = Rect2(0, 320, 32, 64) region = Rect2(0, 320, 32, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_vpy4r"] [sub_resource type="AtlasTexture" id="AtlasTexture_wwamw"]
atlas = ExtResource("2_5c6qp") atlas = ExtResource("2_5c6qp")
region = Rect2(32, 320, 32, 64) region = Rect2(32, 320, 32, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_bu1yd"] [sub_resource type="AtlasTexture" id="AtlasTexture_nens7"]
atlas = ExtResource("2_5c6qp") 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") 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") atlas = ExtResource("2_5c6qp")
region = Rect2(0, 128, 32, 64) region = Rect2(0, 0, 32, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_onkmm"] [sub_resource type="AtlasTexture" id="AtlasTexture_kldb3"]
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"]
atlas = ExtResource("2_5c6qp") atlas = ExtResource("2_5c6qp")
region = Rect2(128, 192, 32, 64) region = Rect2(128, 192, 32, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_s3yi7"] [sub_resource type="AtlasTexture" id="AtlasTexture_daegq"]
atlas = ExtResource("2_5c6qp") atlas = ExtResource("2_5c6qp")
region = Rect2(160, 192, 32, 64) 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") atlas = ExtResource("2_5c6qp")
region = Rect2(0, 256, 32, 64) 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 = [{ animations = [{
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_unh28") "texture": SubResource("AtlasTexture_6hs0l")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_06hsv") "texture": SubResource("AtlasTexture_7slh2")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_75rwr") "texture": SubResource("AtlasTexture_io1xr")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_ithwi") "texture": SubResource("AtlasTexture_vh4hn")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_ylpmh") "texture": SubResource("AtlasTexture_wwamw")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_s5fe3") "texture": SubResource("AtlasTexture_nens7")
}, { }, {
"duration": 1.0, "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, "duration": 1.0,
"texture": SubResource("AtlasTexture_w5q6j") "texture": SubResource("AtlasTexture_kldb3")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_gq465") "texture": SubResource("AtlasTexture_daegq")
}, { }, {
"duration": 1.0, "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, "loop": true,
"name": &"idle", "name": &"idle",
@ -170,87 +262,49 @@ animations = [{
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_unh28") "texture": SubResource("AtlasTexture_a5wcc")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_v6ggy") "texture": SubResource("AtlasTexture_5ra6k")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_2q2n8") "texture": SubResource("AtlasTexture_l1grw")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_j8nd3") "texture": SubResource("AtlasTexture_gae7w")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_wqlee") "texture": SubResource("AtlasTexture_p0xeb")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_liu5q") "texture": SubResource("AtlasTexture_tuo0l")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_fy414") "texture": SubResource("AtlasTexture_iygu1")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_vpy4r") "texture": SubResource("AtlasTexture_nlq48")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_2q2n8") "texture": SubResource("AtlasTexture_581d4")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_v6ggy") "texture": SubResource("AtlasTexture_depii")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_unh28") "texture": SubResource("AtlasTexture_nsu0f")
}],
"loop": true,
"name": &"jump",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bu1yd")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_yxpbn") "texture": SubResource("AtlasTexture_kdf7b")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_np4p4") "texture": SubResource("AtlasTexture_dvo1k")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_onkmm") "texture": SubResource("AtlasTexture_nuos6")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_0r4ck") "texture": SubResource("AtlasTexture_fgj7i")
}, {
"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")
}], }],
"loop": true, "loop": true,
"name": &"walk", "name": &"walk",
@ -260,14 +314,18 @@ animations = [{
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0on8q"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_0on8q"]
size = Vector2(28, 64) size = Vector2(28, 64)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"]
size = Vector2(27, 41)
[node name="Player" type="CharacterBody2D"] [node name="Player" type="CharacterBody2D"]
collision_mask = 3
script = ExtResource("1_oy25y") script = ExtResource("1_oy25y")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1 texture_filter = 1
sprite_frames = SubResource("SpriteFrames_f2tke") sprite_frames = SubResource("SpriteFrames_o2lgd")
animation = &"jump" animation = &" punch"
frame_progress = 0.0204075 frame_progress = 0.126525
metadata/_aseprite_wizard_config_ = { metadata/_aseprite_wizard_config_ = {
"layer": "Layer 3", "layer": "Layer 3",
"o_ex_p": "", "o_ex_p": "",
@ -277,7 +335,7 @@ metadata/_aseprite_wizard_config_ = {
"slice": "", "slice": "",
"source": "res://assets/PlayerCharacter.aseprite" "source": "res://assets/PlayerCharacter.aseprite"
} }
metadata/_aseprite_wizard_source_file_hash_ = "e4930daa975c704a60a92789b7fbe76d" metadata/_aseprite_wizard_source_file_hash_ = "dd5426320f333c1fca2ec67ca43f9db7"
metadata/_aseprite_wizard_interface_config_ = { metadata/_aseprite_wizard_interface_config_ = {
"layer_section": true, "layer_section": true,
"output_section": true "output_section": true
@ -287,3 +345,17 @@ metadata/_aseprite_wizard_interface_config_ = {
position = Vector2(2, 0) position = Vector2(2, 0)
shape = SubResource("RectangleShape2D_0on8q") shape = SubResource("RectangleShape2D_0on8q")
debug_color = Color(1, 0.254902, 0.415686, 0.105882) 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)

215
components/Viruling.tscn Normal file
View file

@ -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

53
levels/level1/sta35D.tmp Normal file
View file

@ -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")

View file

@ -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="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="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://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://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"] [sub_resource type="QuadMesh" id="QuadMesh_seics"]
size = Vector2(480, 64) size = Vector2(480, 64)
@ -26,6 +27,9 @@ position = Vector2(-272, -240)
[node name="Player" parent="." instance=ExtResource("2_sxo5w")] [node name="Player" parent="." instance=ExtResource("2_sxo5w")]
position = Vector2(-240, -16) position = Vector2(-240, -16)
[node name="Viruling" parent="." instance=ExtResource("5_w7lww")]
position = Vector2(179, -13)
[node name="Floor" type="StaticBody2D" parent="."] [node name="Floor" type="StaticBody2D" parent="."]
[node name="MeshInstance2D" type="MeshInstance2D" parent="Floor"] [node name="MeshInstance2D" type="MeshInstance2D" parent="Floor"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -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

View file

@ -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) "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)
]
}

33
scripts/entity.gd Normal file
View file

@ -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

View file

@ -1,18 +1,32 @@
extends CharacterBody2D extends Entity
@export var SPEED = 300
@export var GRAVITY = 30 @export var GRAVITY = 30
@export var JUMP_FORCE = 500 @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 jumping = false
var facing_right = true; 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(): func _ready():
animated_sprite.play("idle") animated_sprite.play("idle")
punch_hitbox.body_entered.connect(punch_connect)
punch_hitbox.visible = false
func _physics_process(delta): func _physics_process(delta):
super._physics_process(delta)
if is_on_floor(): if is_on_floor():
# allow the player to jump # allow the player to jump
if jumping: if jumping:
@ -30,7 +44,7 @@ func _physics_process(delta):
# perform horizontal movement # perform horizontal movement
var horizontal_direction = Input.get_axis("move_left", "move_right") var horizontal_direction = Input.get_axis("move_left", "move_right")
velocity.x = SPEED * horizontal_direction velocity.x = speed * horizontal_direction
move_and_slide() move_and_slide()
# ensure the player faces the correct direction # ensure the player faces the correct direction
@ -44,8 +58,20 @@ func _physics_process(delta):
# figure out which animation should be played # figure out which animation should be played
# respecting the jump animation above all # respecting the jump animation above all
if !jumping: if !jumping and attack_timer.is_stopped():
if is_on_floor() && horizontal_direction != 0: if is_on_floor() && horizontal_direction != 0:
animated_sprite.play("walk") animated_sprite.play("walk")
else: else:
animated_sprite.play("idle") 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

52
scripts/viruling.gd Normal file
View file

@ -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)