为游戏地图模块的脚本文件添加全面的注释,说明每个组件的职责、关键设计、依赖关系和使用方式。注释覆盖了英雄信息面板、技能卡槽位管理器、排行榜弹窗、卡牌控制器、背景滚动组件等核心功能模块,提高了代码的可读性和维护性。 同时修复了英雄预制体的激活状态和技能效果预制体的尺寸参数。
99 lines
3.4 KiB
TypeScript
99 lines
3.4 KiB
TypeScript
/**
|
||
* @file CardController.ts
|
||
* @description 卡牌控制器组件(UI 视图层)
|
||
*
|
||
* 职责:
|
||
* 1. 作为卡牌系统的顶层控制器容器节点对应的脚本。
|
||
* 2. 管理 "任务主页" 与 "任务中" 两个子界面的激活切换。
|
||
* 3. 在 ECS 实体挂载后隐藏 loading 遮罩,标志地图加载完毕。
|
||
*
|
||
* 设计说明:
|
||
* - 本组件挂载在 CardController 预制体根节点上,
|
||
* 子节点 `mission_home` 与 `mission` 分别对应主页和战斗界面。
|
||
* - update 中检查全局暂停 / 结束标志,预留帧逻辑扩展点。
|
||
*
|
||
* 依赖:
|
||
* - smc.map.MapView.scene.mapLayer —— 获取地图层以隐藏 loading 节点
|
||
* - smc.vmdata —— 读取全局游戏状态(game_over / game_pause)
|
||
*/
|
||
import { _decorator,Button,EventHandler,EventTouch,Label,NodeEventType,resources,Sprite,SpriteAtlas,tween,UITransform,v3 } from "cc";
|
||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||
import { smc } from "../common/SingletonModuleComp";
|
||
import { mLogger } from "../common/Logger";
|
||
const { ccclass, property } = _decorator;
|
||
|
||
/**
|
||
* CardControllerComp —— 卡牌系统控制器视图组件
|
||
*
|
||
* 负责初始化卡牌界面的顶层布局切换(主页 vs 战斗),
|
||
* 并在 ECS 实体加入场景时处理 loading 状态。
|
||
*/
|
||
@ccclass('CardControllerComp')
|
||
@ecs.register('CardController', false)
|
||
export class CardControllerComp extends CCComp {
|
||
/** 是否启用调试日志 */
|
||
@property({ tooltip: "是否启用调试日志" })
|
||
private debugMode: boolean = false;
|
||
|
||
/** 触控计时器(预留,可用于长按等交互逻辑) */
|
||
touch_time:number = 0
|
||
/** 是否正在触控中(预留) */
|
||
in_touch:boolean = false
|
||
/** 底部背景引用(预留) */
|
||
bbg:any=null
|
||
/** 底部背景 Y 坐标(预留) */
|
||
bbg_y:number=40
|
||
/** 卡牌槽位 X 坐标数组(5 个位置,预留) */
|
||
bbg_x:any=[-300,-150,0,150,300]
|
||
|
||
protected onLoad(): void {
|
||
}
|
||
|
||
/**
|
||
* start:组件启动时打印日志并初始化页面。
|
||
* 默认显示任务主页(mission_home),隐藏战斗界面(mission)。
|
||
*/
|
||
start() {
|
||
mLogger.log(this.debugMode, 'CardController', "CardControllerComp start",this.node)
|
||
this.page_init()
|
||
}
|
||
|
||
/**
|
||
* onAdded:当本组件对应的 ECS 实体被挂载到场景后触发。
|
||
* 主要作用:关闭地图层上的 loading 遮罩。
|
||
* @param args ECS 实体附加参数
|
||
*/
|
||
onAdded(args:any){
|
||
mLogger.log(this.debugMode, 'CardController', "CardControllerComp onAdded",args)
|
||
smc.map.MapView.scene.mapLayer.node.getChildByName("loading").active=false;
|
||
}
|
||
|
||
/**
|
||
* update:每帧更新。
|
||
* 若全局标记 game_over 或 game_pause 时直接跳过(预留扩展位)。
|
||
*/
|
||
protected update(dt: number): void {
|
||
if(smc.vmdata.game_over||smc.vmdata.game_pause){
|
||
return
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* 页面初始化:
|
||
* - 显示任务主页(mission_home)
|
||
* - 隐藏任务战斗界面(mission)
|
||
*/
|
||
page_init(){
|
||
this.node.getChildByName("mission_home").active=true;
|
||
this.node.getChildByName("mission").active=false;
|
||
}
|
||
|
||
/** ECS 组件移除时销毁节点 */
|
||
reset() {
|
||
this.node.destroy();
|
||
}
|
||
|
||
|
||
} |