Files
pixelheros/assets/script/game/map/CardController.ts
walkpan e880613f8f docs: 为游戏地图模块添加详细的代码注释
为游戏地图模块的脚本文件添加全面的注释,说明每个组件的职责、关键设计、依赖关系和使用方式。注释覆盖了英雄信息面板、技能卡槽位管理器、排行榜弹窗、卡牌控制器、背景滚动组件等核心功能模块,提高了代码的可读性和维护性。

同时修复了英雄预制体的激活状态和技能效果预制体的尺寸参数。
2026-04-07 19:00:30 +08:00

99 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @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();
}
}