From 8ec81d307cf2fd87a0247ce62fa24f4fdf0dc703 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Fri, 16 Feb 2024 01:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=B3=E5=A5=97=E7=A9=BA=E4=B8=AD=E6=94=BB?= =?UTF-8?q?=E5=87=BB=20=E5=87=BB=E8=90=BD=E7=89=B9=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/attack/blunt_mid_hit_down.tres | 19 ++ config/attack/rebound.tres | 6 +- .../hero01_fist_air_attack01.tres | 24 ++ .../hero01_fist_air_attack02.tres | 24 ++ .../hero01_fist_air_attack03.tres | 24 ++ .../character/hero01_fist_attack.aseprite | Bin 17741 -> 24689 bytes .../character/hero01_fist_attack.png | Bin 7998 -> 9546 bytes .../hero01_fist_air_attack01.tres | 119 ++++++++++ .../hero01_fist_air_attack02.tres | 119 ++++++++++ .../hero01_fist_air_attack03.tres | 119 ++++++++++ .../skill_animation/hero01_fist_attack05.tres | 28 +-- .../animation_library.tres | 8 +- scene/character/player.tscn | 16 +- scene/effect/particle/_particle_fist1.tscn | 6 +- .../effect/particle/hero01_fist_attack02.tscn | 3 - .../effect/particle/particle_hit_ground.tscn | 205 ++++++++++++++++++ script/_global/enum.gd | 2 +- script/character/battle.gd | 1 + script/character/player/combo.gd | 30 ++- script/effect/effect_base.gd | 12 +- script/effect/particle.gd | 15 +- script/manager/resource_manager.gd | 1 + 22 files changed, 724 insertions(+), 57 deletions(-) create mode 100644 config/attack/blunt_mid_hit_down.tres create mode 100644 config/skill_player_weapon/hero01_fist_air_attack01.tres create mode 100644 config/skill_player_weapon/hero01_fist_air_attack02.tres create mode 100644 config/skill_player_weapon/hero01_fist_air_attack03.tres create mode 100644 resource/skill_animation/hero01_fist_air_attack01.tres create mode 100644 resource/skill_animation/hero01_fist_air_attack02.tres create mode 100644 resource/skill_animation/hero01_fist_air_attack03.tres create mode 100644 scene/effect/particle/particle_hit_ground.tscn diff --git a/config/attack/blunt_mid_hit_down.tres b/config/attack/blunt_mid_hit_down.tres new file mode 100644 index 0000000..13e0b0d --- /dev/null +++ b/config/attack/blunt_mid_hit_down.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dr70nrjjk754r"] + +[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_esnha"] + +[resource] +script = ExtResource("1_esnha") +damage_rate = 1.0 +break_level = 2 +stun_attack = 10.0 +damage_type = 1 +is_floating = false +is_hit_down = true +is_rebound = false +hit_back_speed = 6.0 +hit_up_speed = -6.0 +hit_back_duration = 0.05 +hit_up_duration = 0.05 +pause_time = 0.15 +is_force_pause = false diff --git a/config/attack/rebound.tres b/config/attack/rebound.tres index 5d90d85..353b69e 100644 --- a/config/attack/rebound.tres +++ b/config/attack/rebound.tres @@ -7,7 +7,7 @@ script = ExtResource("1_2fwsa") damage_rate = 1.0 break_level = 1 stun_attack = 10.0 -damage_type = 1 +damage_type = 2 is_floating = true is_hit_down = false is_rebound = true @@ -17,7 +17,3 @@ hit_back_duration = 0.0 hit_up_duration = 0.05 pause_time = 0.15 is_force_pause = false -height = 2.0 -radius = 0.0 -size = Vector2(2, 1) -offset = Vector2(1, 0) diff --git a/config/skill_player_weapon/hero01_fist_air_attack01.tres b/config/skill_player_weapon/hero01_fist_air_attack01.tres new file mode 100644 index 0000000..5e32743 --- /dev/null +++ b/config/skill_player_weapon/hero01_fist_air_attack01.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://hg7aptg0wl1j"] + +[ext_resource type="Resource" uid="uid://dib6g7t6p5ac2" path="res://config/attack/blunt_normal_hit.tres" id="1_v7ajo"] +[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_6x3pw"] +[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_v1wiv"] +[ext_resource type="Animation" uid="uid://chj3rlh6krt66" path="res://resource/skill_animation/hero01_fist_air_attack01.tres" id="4_nfkff"] +[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="5_7yyxp"] +[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="6_aclp5"] + +[resource] +script = ExtResource("3_v1wiv") +weapon = ExtResource("6_aclp5") +stance_from = 10 +stance_to = 11 +break_level = 3 +action = "attack_light" +name = "" +skill_animation = ExtResource("4_nfkff") +free_lock = false +attack1 = ExtResource("1_v7ajo") +attack1_box = ExtResource("2_6x3pw") +refresh_animation = false +sprite_frames = ExtResource("5_7yyxp") +animation_name = "fist_air_attack01" diff --git a/config/skill_player_weapon/hero01_fist_air_attack02.tres b/config/skill_player_weapon/hero01_fist_air_attack02.tres new file mode 100644 index 0000000..27cb812 --- /dev/null +++ b/config/skill_player_weapon/hero01_fist_air_attack02.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://d1q7buaerirow"] + +[ext_resource type="Resource" uid="uid://dib6g7t6p5ac2" path="res://config/attack/blunt_normal_hit.tres" id="1_cut8n"] +[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_bgip4"] +[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_agxba"] +[ext_resource type="Animation" uid="uid://dia1xwl6foafg" path="res://resource/skill_animation/hero01_fist_air_attack02.tres" id="4_jbb00"] +[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="5_byipk"] +[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="6_ad202"] + +[resource] +script = ExtResource("3_agxba") +weapon = ExtResource("6_ad202") +stance_from = 11 +stance_to = 12 +break_level = 3 +action = "attack_light" +name = "" +skill_animation = ExtResource("4_jbb00") +free_lock = false +attack1 = ExtResource("1_cut8n") +attack1_box = ExtResource("2_bgip4") +refresh_animation = false +sprite_frames = ExtResource("5_byipk") +animation_name = "fist_air_attack02" diff --git a/config/skill_player_weapon/hero01_fist_air_attack03.tres b/config/skill_player_weapon/hero01_fist_air_attack03.tres new file mode 100644 index 0000000..4396bf7 --- /dev/null +++ b/config/skill_player_weapon/hero01_fist_air_attack03.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://0nysxqwoq5tj"] + +[ext_resource type="Resource" uid="uid://dr70nrjjk754r" path="res://config/attack/blunt_mid_hit_down.tres" id="1_w8lg4"] +[ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_2gnst"] +[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="3_ghxjs"] +[ext_resource type="Animation" uid="uid://dfe8krunqdf3m" path="res://resource/skill_animation/hero01_fist_air_attack03.tres" id="4_y802t"] +[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="5_pslv2"] +[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="6_t7m8t"] + +[resource] +script = ExtResource("3_ghxjs") +weapon = ExtResource("6_t7m8t") +stance_from = 12 +stance_to = 13 +break_level = 3 +action = "attack_light" +name = "" +skill_animation = ExtResource("4_y802t") +free_lock = false +attack1 = ExtResource("1_w8lg4") +attack1_box = ExtResource("2_2gnst") +refresh_animation = false +sprite_frames = ExtResource("5_pslv2") +animation_name = "fist_air_attack03" diff --git a/resource/animation/character/hero01_fist_attack.aseprite b/resource/animation/character/hero01_fist_attack.aseprite index 45b4ede092d80099583e798692d791eecef65625..dd8f8217871d6d1d2000dfdf46258d14f9931b9f 100644 GIT binary patch delta 2189 zcmX@x#rW|6BYR;21H*%*t`pfSd2Klv7=C?}V@P3OV36C`tIW(U!^prOp};YDJM+pM zLk0_=I1&(KNXslPiBHTdicc&lNleZ*FtlW_Ls9@_VyZE+XK*2;#&~i9i`(Qp7Ol<8 zSe835)=ze{>)dQ5EX~MhxH(Kj2t;LyaxiYTl?-8KGGy3nAhCpLa<+^bgw4yy^nzjX zM?n>CLxv)tRjdk(3}%y`niVoT0qKR#&Wvp!1MAm8<@A9b`_BY(lO}^2L&cn_lLPq< zC~zEo@^AXQ!sbS{6~BvaO>sYBctX8t!%4$QzuaEk{vNzoq&`~p{RwG7&J4MNz&5iv zY!h@At>5K(Vb3S|dAAQHcfFF+31Oc#^Pauwqsm<~_jI?cR(`W|H^TIpumTc)D$q(T<9=OUm1G@;6MmYt+f^`={=c&awTfcVE;CTOErL_<6)G z$arPa=U3L*o~@zYnW0lJN@d>Mq4;q2i$spqLhAq5oR?pAIrh{e#+5w`FJLaUV$cK! z_o!QG6RzBo7s{&E8!`-NDp0<;gSb?{33cscXqq)(FhxqUvfyktchWA|(=HAL3A%`POZN9vjU-2aV{-HCp-6J)b`FD8Ba^4&Ra-+%w! z**t5hLPn404BfC4YX{C-;PR$^In;CyeqDm(Xxc8mVCSUrcsN9OI|z0&pi z)|sUT%JeU%-*;dy;qv{*rl+)@kqPE@4+e8^Zp#Cg4AY>l*I=+ja=i+JEU09-L=4Lkg2{+HlLBd|Pmq_DSZaIeW0%q^v5?dM v46SButv9*5f9lDwgm0{Q)eIY8j&)-&9d#^CLzV}c-3BxvsC?`qE+GH_=L|S8 delta 64 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 bool: match attack.damage_type: Enum.EDamageType.Sharp:character_to.cast_particle(ResourceManager.particle_hit_sharp,false) Enum.EDamageType.Blunt:character_to.cast_particle(ResourceManager.particle_hit_blunt,false) + Enum.EDamageType.Ground:character_to.cast_particle(ResourceManager.particle_hit_ground,false) #抖动 character_to.add_buff("shake_x",0.2,true) diff --git a/script/character/player/combo.gd b/script/character/player/combo.gd index 0832a9f..8735869 100644 --- a/script/character/player/combo.gd +++ b/script/character/player/combo.gd @@ -18,7 +18,7 @@ func _ready(): add_weapon(load("res://config/weapon/long.tres")) add_weapon(load("res://config/weapon/short.tres")) add_weapon(load("res://config/weapon/fist.tres")) - add_weapon(load("res://config/weapon/chain.tres")) + #add_weapon(load("res://config/weapon/chain.tres")) func _process(delta): update_input_alive(delta) @@ -37,15 +37,18 @@ func update_break(): for break_level_name in Enum.EBreakLevel: var break_level = Enum.EBreakLevel[break_level_name] if break_level <= status.break_level: + var is_break = false match break_level: Enum.EBreakLevel.None: pass - Enum.EBreakLevel.Cancel: update_break_cancel() - Enum.EBreakLevel.Jump: update_break_jump() - Enum.EBreakLevel.Break: update_break_break() - Enum.EBreakLevel.Walk: update_break_walk() + Enum.EBreakLevel.Cancel: is_break = update_break_cancel() + Enum.EBreakLevel.Jump: is_break = update_break_jump() + Enum.EBreakLevel.Break: is_break = update_break_break() + Enum.EBreakLevel.Walk: is_break = update_break_walk() + if is_break: + break func update_break_cancel(): - update_break_by_level(Enum.EBreakLevel.Cancel) + return update_break_by_level(Enum.EBreakLevel.Cancel) func update_break_jump(): for i in range(0,len(input_list)): @@ -54,15 +57,18 @@ func update_break_jump(): refresh_input(i) skill.cancel_skill() move.jump() - return + return true + return false func update_break_break(): - update_break_by_level(Enum.EBreakLevel.Break) + return update_break_by_level(Enum.EBreakLevel.Break) func update_break_walk(): if status.is_skill_running and status.input_dir.length() > 0: refresh_input(len(input_list)) skill.cancel_skill() + return true + return false func update_break_by_level(break_level:Enum.EBreakLevel): for i in range(0,len(input_list)): @@ -82,7 +88,8 @@ func update_break_by_level(break_level:Enum.EBreakLevel): skill.cast_skill(skill_cfg,status.input_dir) status.stance = skill_player_weapon_cfg.stance_to refresh_input(i) - return + return true + return false func refresh_input(index:int): if index >= len(input_list)-1: @@ -95,7 +102,10 @@ func update_move(): if status.is_skill_running: pass else: - status.stance = Enum.EStance.Idle if status.is_on_floor else Enum.EStance.AirIdle + if not status.is_on_floor or status.is_jumping: + status.stance = Enum.EStance.AirIdle + else: + status.stance = Enum.EStance.Idle status.break_level = Enum.EBreakLevel.Walk func add_input_action(action:String): diff --git a/script/effect/effect_base.gd b/script/effect/effect_base.gd index 9628d71..c6ec540 100644 --- a/script/effect/effect_base.gd +++ b/script/effect/effect_base.gd @@ -1,23 +1,23 @@ extends Node3D class_name EffectBase -@export var life_time : float = 1 -var life_time_now : float +@export var lifetime : float = 1 +var lifetime_now : float var is_pause : bool = false var rate : float func _ready(): - life_time_now = life_time + lifetime_now = lifetime on_ready() func _process(delta): if is_pause: return - life_time_now -= delta - if life_time_now <= 0: + lifetime_now -= delta + if lifetime_now <= 0: queue_free() return - rate = life_time_now / life_time + rate = lifetime_now / lifetime on_process(delta) func set_pause(is_pause_set:bool): diff --git a/script/effect/particle.gd b/script/effect/particle.gd index 79c44ca..c979793 100644 --- a/script/effect/particle.gd +++ b/script/effect/particle.gd @@ -1,13 +1,16 @@ extends EffectBase class_name Particle +var sub_particle_list : Array[Particle] var particle_list : Array[GPUParticles3D] var speed_scale_list = [] var decal_list = [] func on_ready(): for child in get_children(): - if child is GPUParticles3D: + if child is Particle: + sub_particle_list.append(child) + elif child is GPUParticles3D: var particle = child as GPUParticles3D particle_list.append(particle) speed_scale_list.append(particle.speed_scale) @@ -16,12 +19,12 @@ func on_ready(): decal_list.append(child) else: continue - if child.lifetime > life_time_now: - life_time_now = child.lifetime + if child.lifetime > lifetime_now: + lifetime_now = child.lifetime for particle : GPUParticles3D in particle_list: - if particle.lifetime > life_time_now: - life_time_now = particle.lifetime + if particle.lifetime > lifetime_now: + lifetime_now = particle.lifetime func on_process(delta:float): for decal : ParticleDecal in decal_list: @@ -32,3 +35,5 @@ func on_set_pause(is_pause_set:bool): var particle = particle_list[i] var speed_scale = speed_scale_list[i] particle.speed_scale = 0 if is_pause else speed_scale + for sub_particle:Particle in sub_particle_list: + sub_particle.set_pause(is_pause_set) diff --git a/script/manager/resource_manager.gd b/script/manager/resource_manager.gd index ccc01b6..7854610 100644 --- a/script/manager/resource_manager.gd +++ b/script/manager/resource_manager.gd @@ -12,6 +12,7 @@ var material_character_sub = load("res://render/material/character_sub.tres") #==effect== var particle_hit_sharp = load("res://scene/effect/particle/particle_hit_sharp.tscn") var particle_hit_blunt = load("res://scene/effect/particle/particle_hit_blunt.tscn") +var particle_hit_ground = load("res://scene/effect/particle/particle_hit_ground.tscn") #==config== #character