refactor(hero): 优化调试日志输出并添加调试工具方法

添加条件日志方法 debugLog 和 debugWarn 来统一管理调试输出
将 HeroAtkSystem 中的 console.log 调用改为条件输出
启用 HeroViewComp 的调试模式以便开发时查看日志
This commit is contained in:
2025-11-28 10:29:54 +08:00
parent 7a7a6fa02c
commit 509539760d
2 changed files with 26 additions and 8 deletions

View File

@@ -151,7 +151,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]-TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]); const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]-TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]);
// 计算基础伤害 // 计算基础伤害
let damage = this.dmgCount(damageEvent,TAttrsComp); let damage = this.dmgCount(damageEvent,TAttrsComp);
console.log("[HeroAtkSystem] dmgCount",damage) if (this.debugMode) console.log("[HeroAtkSystem] dmgCount",damage)
if (isCrit) { if (isCrit) {
// 暴击伤害计算 // 暴击伤害计算
// 使用施法者的暴击伤害加成属性damageEvent.Attrs 快照) // 使用施法者的暴击伤害加成属性damageEvent.Attrs 快照)
@@ -162,10 +162,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
CAttrsComp?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff CAttrsComp?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff
} }
console.log("[HeroAtkSystem] after crit",damage) if (this.debugMode) console.log("[HeroAtkSystem] after crit",damage)
// 护盾吸收 // 护盾吸收
damage =Math.floor(this.absorbShield(TAttrsComp, damage)) damage =Math.floor(this.absorbShield(TAttrsComp, damage))
console.log("[HeroAtkSystem] after shield",damage) if (this.debugMode) console.log("[HeroAtkSystem] after shield",damage)
if (damage <= 0) return reDate; if (damage <= 0) return reDate;
// 应用伤害到数据层 // 应用伤害到数据层
TAttrsComp.hp -= damage; TAttrsComp.hp -= damage;

View File

@@ -26,7 +26,20 @@ export interface BuffInfo {
@ccclass('HeroViewComp') // 定义Cocos Creator 组件 @ccclass('HeroViewComp') // 定义Cocos Creator 组件
@ecs.register('HeroView', false) // 定义ECS 组件 @ecs.register('HeroView', false) // 定义ECS 组件
export class HeroViewComp extends CCComp { export class HeroViewComp extends CCComp {
private debugMode: boolean = false; // 是否启用调试模式 private debugMode: boolean = true; // 是否启用调试模式
// 添加条件日志方法
private debugLog(...args: any[]): void {
if (this.debugMode) {
console.log(...args);
}
}
private debugWarn(...args: any[]): void {
if (this.debugMode) {
console.warn(...args);
}
}
// ==================== View 层属性(表现相关)==================== // ==================== View 层属性(表现相关)====================
as: HeroSpine = null! as: HeroSpine = null!
status:String = "idle" status:String = "idle"
@@ -44,7 +57,7 @@ export class HeroViewComp extends CCComp {
get model() { get model() {
// 🔥 修复添加安全检查防止ent为null时的访问异常 // 🔥 修复添加安全检查防止ent为null时的访问异常
if (!this.ent) { if (!this.ent) {
console.warn("[HeroViewComp] ent is null, returning null for model"); this.debugWarn("[HeroViewComp] ent is null, returning null for model");
return null; return null;
} }
return this.ent.get(HeroAttrsComp); return this.ent.get(HeroAttrsComp);
@@ -161,7 +174,7 @@ export class HeroViewComp extends CCComp {
// 不再基于血量是否满来决定显示状态,只更新进度条 // 不再基于血量是否满来决定显示状态,只更新进度条
let hp=this.model.hp; let hp=this.model.hp;
let hp_max=this.model.Attrs[Attrs.HP_MAX]; let hp_max=this.model.Attrs[Attrs.HP_MAX];
console.log("hp_show",hp,hp_max) this.debugLog("hp_show",hp,hp_max)
this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp / hp_max;; this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp / hp_max;;
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp / hp_max;; this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp / hp_max;;
@@ -173,7 +186,7 @@ export class HeroViewComp extends CCComp {
if(!this.top_node.active) return if(!this.top_node.active) return
let mp=this.model.mp; let mp=this.model.mp;
let mp_max=this.model.Attrs[Attrs.MP_MAX]; let mp_max=this.model.Attrs[Attrs.MP_MAX];
console.log("mp_show",mp,mp_max) this.debugLog("mp_show",mp,mp_max)
this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max; this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max;
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max; this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max;
@@ -331,7 +344,7 @@ export class HeroViewComp extends CCComp {
realDead(){ realDead(){
// 🔥 修复添加model安全检查防止实体销毁过程中的空指针异常 // 🔥 修复添加model安全检查防止实体销毁过程中的空指针异常
if (!this.model) { if (!this.model) {
console.warn("[HeroViewComp] realDead called but model is null, skipping"); this.debugWarn("[HeroViewComp] realDead called but model is null, skipping");
return; return;
} }
if(this.model.fac === FacSet.HERO){ if(this.model.fac === FacSet.HERO){
@@ -472,3 +485,8 @@ export class HeroViewComp extends CCComp {
} }
} }