From c021c3c444e7a0c0e4c1870ebe8ff986ed687bf7 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Wed, 4 Oct 2023 22:11:33 +0700 Subject: [PATCH] Basic stop what you're doing sheathe attack --- Godot/Code/Character.gd | 157 +++++++------- .../player katana attack-sheathe 80x64.png | Bin 0 -> 4733 bytes ...yer katana attack-sheathe 80x64.png.import | 34 +++ .../player katana continuous attack 80x64.png | Bin 0 -> 3465 bytes ... katana continuous attack 80x64.png.import | 34 +++ Godot/Scenes/Player.tscn | 204 +++++++++++++++++- Godot/project.godot | 7 +- 7 files changed, 361 insertions(+), 75 deletions(-) create mode 100644 Godot/Import/Sprites/player katana attack-sheathe 80x64.png create mode 100644 Godot/Import/Sprites/player katana attack-sheathe 80x64.png.import create mode 100644 Godot/Import/Sprites/player katana continuous attack 80x64.png create mode 100644 Godot/Import/Sprites/player katana continuous attack 80x64.png.import diff --git a/Godot/Code/Character.gd b/Godot/Code/Character.gd index 61617ef..5538831 100644 --- a/Godot/Code/Character.gd +++ b/Godot/Code/Character.gd @@ -25,87 +25,100 @@ enum State { Jump, AirSpin, Land, + Attack, Roll, } func _physics_process(delta): - if not is_on_floor(): - if velocity.y > 50: - velocity.y += gravity_fall * delta - elif velocity.y < -50: - velocity.y += gravity * delta - else: - velocity.y += gravity_mid * delta - elif state == State.Jump or state == State.AirSpin: - state = State.Land - sprite.play("Land") - land_time = 0.16 - return - - if Input.is_action_just_pressed("roll"): - if is_on_floor() and roll_time <= 0 and roll_cooldown <= 0: - state = State.Roll - roll_time = 0.55 - roll_dir = -1 if sprite.flip_h else 1 - $CollisionShape2D.shape.size.y = colshape_stand / 2 - $CollisionShape2D.position.y = colshape_stand / -4 - sprite.play("GroundRoll") - if Input.is_action_just_pressed("ui_accept") and state != State.Roll: + if Input.is_action_just_pressed("attack"): if is_on_floor(): - velocity.y = JUMP_VELOCITY - sprite.play("Jump") - state = State.Jump - sprite.pause() - sprite.set_frame_and_progress(0, 0) - elif state != State.AirSpin: - sprite.play("AirSpin") - state = State.AirSpin - var boost = 0 if velocity.y > 0 else velocity.y / 3 - velocity.y = JUMP_VELOCITY / 1.4 + boost - - if state == State.Roll: - velocity.x = roll_dir * roll_speed - else: - var speed = SPEED - if Input.is_key_pressed(KEY_SHIFT): - speed /= 3 - var direction = Input.get_axis("left", "right") - if direction: - velocity.x = direction * speed - else: - # Decelerate - velocity.x = move_toward(velocity.x, 0, 25) - - if direction != 0: - sprite.flip_h = direction == -1 - - if land_time >= 0: - land_time -= delta - if roll_cooldown >= 0: - roll_cooldown -= delta - if roll_time >= 0: - roll_time -= delta - elif state == State.Roll: - $CollisionShape2D.shape.size.y = colshape_stand - $CollisionShape2D.position.y = colshape_stand / -2 - roll_cooldown = roll_cooldown_time + state = State.Attack + velocity = Vector2.ZERO + sprite.play("Attack1") + + if state == State.Attack: + await (sprite as AnimatedSprite2D).animation_finished state = State.Idle - if state == State.Jump: - if velocity.y > 50: - sprite.set_frame_and_progress(2,0) - elif velocity.y > -150: - sprite.set_frame_and_progress(1, 0) - - # If shift left/right then 2 * speed, play run - if land_time <= 0 and is_on_floor() and state != State.Jump and state != State.Roll: - if velocity.x != 0: - if Input.is_key_pressed(KEY_SHIFT): - sprite.play("Walk") + else: + if not is_on_floor(): + if velocity.y > 50: + velocity.y += gravity_fall * delta + elif velocity.y < -50: + velocity.y += gravity * delta else: - sprite.play("Run") + velocity.y += gravity_mid * delta + elif state == State.Jump or state == State.AirSpin: + state = State.Land + sprite.play("Land") + land_time = 0.16 + return + + if Input.is_action_just_pressed("roll"): + if is_on_floor() and roll_time <= 0 and roll_cooldown <= 0: + state = State.Roll + roll_time = 0.55 + roll_dir = -1 if sprite.flip_h else 1 + $CollisionShape2D.shape.size.y = colshape_stand / 2 + $CollisionShape2D.position.y = colshape_stand / -4 + sprite.play("GroundRoll") + if Input.is_action_just_pressed("ui_accept") and state != State.Roll: + if is_on_floor(): + velocity.y = JUMP_VELOCITY + sprite.play("Jump") + state = State.Jump + sprite.pause() + sprite.set_frame_and_progress(0, 0) + elif state != State.AirSpin: + sprite.play("AirSpin") + state = State.AirSpin + var boost = 0 if velocity.y > 0 else velocity.y / 3 + velocity.y = JUMP_VELOCITY / 1.4 + boost + + if state == State.Roll: + velocity.x = roll_dir * roll_speed else: - sprite.play("Idle") + var speed = SPEED + if Input.is_key_pressed(KEY_SHIFT): + speed /= 3 + var direction = Input.get_axis("left", "right") + + if direction: + velocity.x = direction * speed + else: + # Decelerate + velocity.x = move_toward(velocity.x, 0, 25) + + if direction != 0: + sprite.flip_h = direction == -1 + + if land_time >= 0: + land_time -= delta + if roll_cooldown >= 0: + roll_cooldown -= delta + if roll_time >= 0: + roll_time -= delta + elif state == State.Roll: + $CollisionShape2D.shape.size.y = colshape_stand + $CollisionShape2D.position.y = colshape_stand / -2 + roll_cooldown = roll_cooldown_time + state = State.Idle + + if state == State.Jump: + if velocity.y > 50: + sprite.set_frame_and_progress(2,0) + elif velocity.y > -150: + sprite.set_frame_and_progress(1, 0) + + # If shift left/right then 2 * speed, play run + if land_time <= 0 and is_on_floor() and state != State.Jump and state != State.Roll: + if velocity.x != 0: + if Input.is_key_pressed(KEY_SHIFT): + sprite.play("Walk") + else: + sprite.play("Run") + else: + sprite.play("Idle") move_and_slide() diff --git a/Godot/Import/Sprites/player katana attack-sheathe 80x64.png b/Godot/Import/Sprites/player katana attack-sheathe 80x64.png new file mode 100644 index 0000000000000000000000000000000000000000..56ab97bbbcb121f15f025cc8d957a41ae3db6083 GIT binary patch literal 4733 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 literal 0 HcmV?d00001 diff --git a/Godot/Import/Sprites/player katana attack-sheathe 80x64.png.import b/Godot/Import/Sprites/player katana attack-sheathe 80x64.png.import new file mode 100644 index 0000000..ecfa164 --- /dev/null +++ b/Godot/Import/Sprites/player katana attack-sheathe 80x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwovkjj1o7fm0" +path="res://.godot/imported/player katana attack-sheathe 80x64.png-4676fdc54f170af8c2189309f269706a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Import/Sprites/player katana attack-sheathe 80x64.png" +dest_files=["res://.godot/imported/player katana attack-sheathe 80x64.png-4676fdc54f170af8c2189309f269706a.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/Godot/Import/Sprites/player katana continuous attack 80x64.png b/Godot/Import/Sprites/player katana continuous attack 80x64.png new file mode 100644 index 0000000000000000000000000000000000000000..0778e6a7a35513bc0a707a7d9de47db32e240327 GIT binary patch literal 3465 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 TL^S`zzXUcGH?GxRz4h>)KkfK9 literal 0 HcmV?d00001 diff --git a/Godot/Import/Sprites/player katana continuous attack 80x64.png.import b/Godot/Import/Sprites/player katana continuous attack 80x64.png.import new file mode 100644 index 0000000..9d4d200 --- /dev/null +++ b/Godot/Import/Sprites/player katana continuous attack 80x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqoe7j0c5o3w3" +path="res://.godot/imported/player katana continuous attack 80x64.png-500ac913698c7a3ade722a623a783a4d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Import/Sprites/player katana continuous attack 80x64.png" +dest_files=["res://.godot/imported/player katana continuous attack 80x64.png-500ac913698c7a3ade722a623a783a4d.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/Godot/Scenes/Player.tscn b/Godot/Scenes/Player.tscn index 883e61f..5f66aae 100644 --- a/Godot/Scenes/Player.tscn +++ b/Godot/Scenes/Player.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=56 format=3 uid="uid://bjc6dwxaakqdg"] +[gd_scene load_steps=83 format=3 uid="uid://bjc6dwxaakqdg"] [ext_resource type="Script" path="res://Code/Character.gd" id="1_23c20"] [ext_resource type="Texture2D" uid="uid://wfwjlevruveu" path="res://Import/Sprites/Character Idle 48x48.png" id="2_8h572"] [ext_resource type="Texture2D" uid="uid://c87b08n23v0kx" path="res://Import/Sprites/player air spin 48x48.png" id="2_gpxo5"] [ext_resource type="Texture2D" uid="uid://clx88ivnf6id6" path="res://Import/Sprites/Player Roll 48x48.png" id="3_4dpty"] +[ext_resource type="Texture2D" uid="uid://cwovkjj1o7fm0" path="res://Import/Sprites/player katana attack-sheathe 80x64.png" id="3_ldd0x"] [ext_resource type="Texture2D" uid="uid://bge22c82umdui" path="res://Import/Sprites/PlayerWalk 48x48.png" id="3_xxdqr"] [ext_resource type="Texture2D" uid="uid://y8syonuki304" path="res://Import/Sprites/run cycle 48x48.png" id="4_rqcgh"] [ext_resource type="Texture2D" uid="uid://8ikuchoh7pyd" path="res://Import/Sprites/player jump 48x48.png" id="5_f2sni"] [ext_resource type="Texture2D" uid="uid://diiqvgeqnmn1c" path="res://Import/Sprites/player land 48x48.png" id="6_ba2s3"] +[ext_resource type="Texture2D" uid="uid://cqoe7j0c5o3w3" path="res://Import/Sprites/player katana continuous attack 80x64.png" id="10_sjvpb"] [sub_resource type="AtlasTexture" id="AtlasTexture_c40es"] atlas = ExtResource("2_gpxo5") @@ -33,6 +35,106 @@ region = Rect2(192, 0, 48, 48) atlas = ExtResource("2_gpxo5") region = Rect2(240, 0, 48, 48) +[sub_resource type="AtlasTexture" id="AtlasTexture_4y312"] +atlas = ExtResource("3_ldd0x") +region = Rect2(0, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lc7wi"] +atlas = ExtResource("3_ldd0x") +region = Rect2(80, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lf13m"] +atlas = ExtResource("3_ldd0x") +region = Rect2(160, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bkbg6"] +atlas = ExtResource("3_ldd0x") +region = Rect2(240, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gh4du"] +atlas = ExtResource("3_ldd0x") +region = Rect2(320, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yh84k"] +atlas = ExtResource("3_ldd0x") +region = Rect2(400, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_myi62"] +atlas = ExtResource("3_ldd0x") +region = Rect2(480, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ba8as"] +atlas = ExtResource("3_ldd0x") +region = Rect2(560, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nbmkv"] +atlas = ExtResource("3_ldd0x") +region = Rect2(640, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvg4c"] +atlas = ExtResource("3_ldd0x") +region = Rect2(720, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0liim"] +atlas = ExtResource("3_ldd0x") +region = Rect2(800, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_em1mn"] +atlas = ExtResource("3_ldd0x") +region = Rect2(880, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_73cfr"] +atlas = ExtResource("3_ldd0x") +region = Rect2(960, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qp1t3"] +atlas = ExtResource("3_ldd0x") +region = Rect2(1040, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rcujh"] +atlas = ExtResource("3_ldd0x") +region = Rect2(1120, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_km0fj"] +atlas = ExtResource("3_ldd0x") +region = Rect2(1200, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0audb"] +atlas = ExtResource("10_sjvpb") +region = Rect2(0, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4322d"] +atlas = ExtResource("10_sjvpb") +region = Rect2(80, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vnrrw"] +atlas = ExtResource("10_sjvpb") +region = Rect2(160, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u7b31"] +atlas = ExtResource("10_sjvpb") +region = Rect2(240, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mgpi0"] +atlas = ExtResource("10_sjvpb") +region = Rect2(320, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_56uqh"] +atlas = ExtResource("10_sjvpb") +region = Rect2(400, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5mbn8"] +atlas = ExtResource("10_sjvpb") +region = Rect2(480, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_icpi6"] +atlas = ExtResource("10_sjvpb") +region = Rect2(560, 0, 80, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fht4k"] +atlas = ExtResource("10_sjvpb") +region = Rect2(640, 0, 80, 64) + [sub_resource type="AtlasTexture" id="AtlasTexture_7tnm4"] atlas = ExtResource("3_4dpty") region = Rect2(0, 0, 48, 48) @@ -216,6 +318,103 @@ animations = [{ }, { "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_4y312") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lc7wi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lf13m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bkbg6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gh4du") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gh4du") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gh4du") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gh4du") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gh4du") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yh84k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_myi62") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ba8as") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nbmkv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dvg4c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0liim") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_em1mn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_73cfr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qp1t3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rcujh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_km0fj") +}], +"loop": false, +"name": &"Attack1", +"speed": 15.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_0audb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4322d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vnrrw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u7b31") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mgpi0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_56uqh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5mbn8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_icpi6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fht4k") +}], +"loop": true, +"name": &"Attack2", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_7tnm4") }, { "duration": 1.0, @@ -372,7 +571,8 @@ script = ExtResource("1_23c20") texture_filter = 1 position = Vector2(0, -16) sprite_frames = SubResource("SpriteFrames_gvqqb") -animation = &"AirSpin" +animation = &"Idle" +autoplay = "Idle" metadata/_edit_lock_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/Godot/project.godot b/Godot/project.godot index 6bbb31b..f97abef 100644 --- a/Godot/project.godot +++ b/Godot/project.godot @@ -51,6 +51,11 @@ down={ } roll={ "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":82,"key_label":0,"unicode":114,"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":76,"key_label":0,"unicode":108,"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":74,"key_label":0,"unicode":106,"echo":false,"script":null) ] }