From eceabdc65a5bf5a6916431e42e1031ce51a6c8fb Mon Sep 17 00:00:00 2001 From: panw Date: Wed, 18 Mar 2026 16:15:37 +0800 Subject: [PATCH] =?UTF-8?q?refactor(hero):=20=E7=AE=80=E5=8C=96=E4=BC=A4?= =?UTF-8?q?=E5=AE=B3=E9=98=9F=E5=88=97=E5=92=8C=E5=8A=A8=E7=94=BB=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除伤害队列中的冗余字段,将受击动画播放移至伤害触发时统一处理,提高代码可维护性并消除重复逻辑。 --- assets/script/game/hero/HeroViewComp.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index 98222fc0..0730afe9 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -56,8 +56,6 @@ export class HeroViewComp extends CCComp { private damageQueue: Array<{ damage: number, isCrit: boolean, - delay: number, - anm:string, }> = []; private isProcessingDamage: boolean = false; private damageInterval: number = 0.01; // 伤害数字显示间隔 @@ -479,8 +477,10 @@ export class HeroViewComp extends CCComp { // 视图层表现 let SConf=SkillSet[s_uuid] + const hitAnm = EAnmConf[SConf?.DAnm]?.path || "atked"; if (isBack) this.back() - this.showDamage(damage, isCrit, SConf.DAnm); + this.in_atked(hitAnm, this.model.fac==FacSet.HERO?1:-1); + this.showDamage(damage, isCrit); } private isBackingUp: boolean = false; // 🔥 添加后退状态标记 @@ -535,13 +535,10 @@ export class HeroViewComp extends CCComp { /** 显示伤害数字 */ - showDamage(damage: number, isCrit: boolean,DAnm:number) { - let anm=EAnmConf[DAnm].path // DAnm和EAnm共用设定数组 + showDamage(damage: number, isCrit: boolean) { this.damageQueue.push({ damage, isCrit, - delay: this.damageInterval, - anm }); } @@ -552,7 +549,7 @@ export class HeroViewComp extends CCComp { this.isProcessingDamage = true; const damageInfo = this.damageQueue.shift()!; - this.showDamageImmediate(damageInfo.damage, damageInfo.isCrit,damageInfo.anm); + this.showDamageImmediate(damageInfo.damage, damageInfo.isCrit); // 设置延时处理下一个伤 this.scheduleOnce(() => { @@ -561,11 +558,10 @@ export class HeroViewComp extends CCComp { } /** 立即显示伤害效果 */ - private showDamageImmediate(damage: number, isCrit: boolean, anm:string="atked") { + private showDamageImmediate(damage: number, isCrit: boolean) { if (!this.model) return; this.hp_show(); - this.in_atked(anm, this.model.fac==FacSet.HERO?1:-1); if (isCrit) { this.hp_tip(TooltipTypes.crit, damage.toFixed(0)); } else {