From 22d8a8d3dbd41947da2e36a33bea0aa88baa9b5b Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Fri, 27 Sep 2024 07:11:09 +0800 Subject: [PATCH] fix decal --- config/attack/rebound.tres | 2 +- render/texture/decal/blood.png | Bin 0 -> 37571 bytes render/texture/decal/blood.png.import | 34 +++++++++++++++ .../particle/_particle_hit_ground_heavy.tscn | 2 +- .../particle/_particle_hit_ground_normal.tscn | 21 +--------- .../effect/particle/particle_blood_decal.tscn | 14 ++++--- scene/effect/readiness/readiness_bullet.tscn | 2 +- scene/effect/readiness/readiness_hero.tscn | 2 +- scene/effect/readiness/readiness_monster.tscn | 2 +- scene/effect/readiness/readiness_soul.tscn | 2 +- script/character/battle.gd | 39 +++++++++--------- script/character/move.gd | 4 +- script/character/player/player_action.gd | 2 +- script/effect/fragment.gd | 14 +++++-- script/effect/particle_decal.gd | 9 ++-- script/manager/effect_manager.gd | 2 +- 16 files changed, 89 insertions(+), 62 deletions(-) create mode 100644 render/texture/decal/blood.png create mode 100644 render/texture/decal/blood.png.import diff --git a/config/attack/rebound.tres b/config/attack/rebound.tres index de3f558..26ad7ca 100644 --- a/config/attack/rebound.tres +++ b/config/attack/rebound.tres @@ -5,7 +5,7 @@ [resource] script = ExtResource("1_2fwsa") damage_rate = 1.0 -break_level = 2 +break_level = 1 stun_attack = 10.0 damage_type = 1 is_floating = true diff --git a/render/texture/decal/blood.png b/render/texture/decal/blood.png new file mode 100644 index 0000000000000000000000000000000000000000..cf28dc796ab26911c6f1e07e75a70049d84d660f GIT binary patch literal 37571 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 HitResult: Global.item_mgr.create_pt(Enum.EPtType.MP, damage * Setting.pt_mp_damage_rate, character_to.pos()) #受击特效 - var particle_hit: PackedScene - match attack.damage_type: - Enum.EDamageType.Sharp: - match break_level_sub: - -1: particle_hit = ResourceManager.particle_hit_sharp_block - 0: particle_hit = ResourceManager.particle_hit_sharp_normal - 1: particle_hit = ResourceManager.particle_hit_sharp_normal - 2: particle_hit = ResourceManager.particle_hit_sharp_mid - 3: particle_hit = ResourceManager.particle_hit_sharp_heavy - Enum.EDamageType.Blunt: - match break_level_sub: - -1: particle_hit = ResourceManager.particle_hit_blunt_block - 0: particle_hit = ResourceManager.particle_hit_blunt_normal - 1: particle_hit = ResourceManager.particle_hit_blunt_normal - 2: particle_hit = ResourceManager.particle_hit_blunt_mid - 3: particle_hit = ResourceManager.particle_hit_blunt_heavy - _: pass - if particle_hit: - character_to.cast_particle(particle_hit, false) + if not attack.is_throw_end: + var particle_hit: PackedScene + match attack.damage_type: + Enum.EDamageType.Sharp: + match break_level_sub: + -1: particle_hit = ResourceManager.particle_hit_sharp_block + 0: particle_hit = ResourceManager.particle_hit_sharp_normal + 1: particle_hit = ResourceManager.particle_hit_sharp_normal + 2: particle_hit = ResourceManager.particle_hit_sharp_mid + 3: particle_hit = ResourceManager.particle_hit_sharp_heavy + Enum.EDamageType.Blunt: + match break_level_sub: + -1: particle_hit = ResourceManager.particle_hit_blunt_block + 0: particle_hit = ResourceManager.particle_hit_blunt_normal + 1: particle_hit = ResourceManager.particle_hit_blunt_normal + 2: particle_hit = ResourceManager.particle_hit_blunt_mid + 3: particle_hit = ResourceManager.particle_hit_blunt_heavy + _: pass + if particle_hit: + character_to.cast_particle(particle_hit, false) #受击材质特效 if (damage > 0) and (break_level_sub > 2): diff --git a/script/character/move.gd b/script/character/move.gd index 6fe63b3..66bd332 100644 --- a/script/character/move.gd +++ b/script/character/move.gd @@ -112,11 +112,11 @@ func update_move_check(delta): normal += collision.get_normal() normal = normal.normalized() var normal_speed: float = velocity.dot(normal) - if normal_speed < -6: + if normal_speed < -6 and normal.y >= 0: #墙体互动 Global.effect_mgr.cast_particle(ResourceManager.particle_hit_ground_heavy, character.pos(), normal) var velocity_new = velocity - normal * normal_speed * 2 - var attack_dir = Vector2(velocity_new.x, velocity_new.z).normalized() + var attack_dir = Vector2(velocity_new.x, velocity_new.z).normalized() character.velocity = Vector3.ZERO battle.add_attack(ResourceManager.cfg_attack_rebound, ResourceManager.cfg_attack_box_rebound, true, attack_dir) elif normal_speed <-3: diff --git a/script/character/player/player_action.gd b/script/character/player/player_action.gd index 598cca1..d9761f5 100644 --- a/script/character/player/player_action.gd +++ b/script/character/player/player_action.gd @@ -67,7 +67,7 @@ func check_action_pressed(key: String) -> bool: "weapon_next": combo.weapon_index_change(1) "test_1": Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test0, Enum.ETeam.Monster, character.pos()) -# Global.effect_mgr.cast_particle(ResourceManager.particle_hit_ground_normal, character.pos(), Vector3.UP) +# Global.effect_mgr.cast_particle(ResourceManager.particle_hit_ground_heavy, character.pos(), Vector3.BACK) _: return false return true diff --git a/script/effect/fragment.gd b/script/effect/fragment.gd index 2d18e00..3d2506b 100644 --- a/script/effect/fragment.gd +++ b/script/effect/fragment.gd @@ -27,8 +27,14 @@ func _process(delta: float) -> void: frame_time += delta sprite3D.frame = int(frame_time / frame_rate) % frame_count frame_time = fmod(frame_time, frame_time_all) - if move_and_slide(): - var sub_particle: Node3D = sub.instantiate() as Node3D - SignalManager.effect_create.emit(sub_particle) - sub_particle.global_position = global_position + move_and_slide() + var collision_count: int = get_slide_collision_count() + if collision_count > 0: + if sub: + var normal: Vector3 = Vector3.ZERO + for i in collision_count: + var collision: KinematicCollision3D = get_slide_collision(i) + normal += collision.get_normal() + normal = normal.normalized() + Global.effect_mgr.cast_particle(sub, global_position, normal) queue_free() diff --git a/script/effect/particle_decal.gd b/script/effect/particle_decal.gd index 07b7dd8..ce82afe 100644 --- a/script/effect/particle_decal.gd +++ b/script/effect/particle_decal.gd @@ -5,13 +5,17 @@ class_name ParticleDecal @export var gradient: Gradient @export var scale_curve: Curve @export var particle_rotate: int +@export var size_random: float #0-1 0为不随机 1为随机0~2倍 var lifetime_now: float +var size_scale: float func on_ready() -> void: var scale_sample: float = scale_curve.sample(0) - scale = Vector3(scale_sample, 1, scale_sample) + size_random = clamp(size_random, 0, 1) + size_scale = randf_range(1-size_random, 1+size_random) + scale = Vector3(scale_sample, 1, scale_sample) * size_scale func on_process(delta: float) -> void: @@ -29,9 +33,8 @@ func on_process(delta: float) -> void: #缩放曲线 if scale_curve: var scale_sample: float = scale_curve.sample(rate) - scale = Vector3(scale_sample, 1, scale_sample) + scale = Vector3(scale_sample, 1, scale_sample) * size_scale #旋转 rotation_degrees.y = particle_rotate * rate return - diff --git a/script/manager/effect_manager.gd b/script/manager/effect_manager.gd index 6232834..578b855 100644 --- a/script/manager/effect_manager.gd +++ b/script/manager/effect_manager.gd @@ -15,6 +15,6 @@ func cast_particle(resource: Resource, pos: Vector3, direction = Vector3.UP) -> add_child(new_particle) new_particle.position = pos if direction.angle_to(Vector3.UP) > 0.01: - new_particle.look_at(pos + direction) + new_particle.look_at(pos - direction) else: new_particle.rotation.x = deg_to_rad(-90)