docs: 为游戏地图模块添加详细的代码注释

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

同时修复了英雄预制体的激活状态和技能效果预制体的尺寸参数。
This commit is contained in:
walkpan
2026-04-07 19:00:30 +08:00
parent 9a1d517aa9
commit e880613f8f
21 changed files with 1840 additions and 242 deletions

View File

@@ -1,3 +1,22 @@
/**
* @file MissionHomeComp.ts
* @description 任务主页组件UI 视图层)
*
* 职责:
* 1. 作为玩家进入游戏后第一个看到的界面(主菜单/大厅)。
* 2. 提供"开始任务"按钮,触发 GameEvent.MissionStart 进入战斗。
* 3. 提供"排行榜"按钮,打开 RanksComp 弹窗。
* 4. 监听 MissionEnd 事件,任务结束后自动切回主页。
*
* 关键设计:
* - start_mission() 分发 MissionStart 事件并隐藏自身节点。
* - mission_end() 响应后重新显示主页。
* - isWxClient() 检测是否运行在微信小游戏环境。
*
* 依赖:
* - GameEvent.MissionStart / MissionEnd —— 游戏生命周期事件
* - UIID.Ranks —— 排行榜弹窗 ID
*/
import { _decorator, instantiate, Prefab, resources, Sprite, SpriteAtlas, UITransform ,Node} from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
@@ -10,61 +29,88 @@ import { UIID } from "../common/config/GameUIConfig";
const { ccclass, property } = _decorator;
/** 视图层对象 */
/**
* MissionHomeComp —— 任务主页视图组件
*
* 游戏大厅界面,提供开始战斗和查看排行的入口。
*/
@ccclass('MissionHomeComp')
@ecs.register('MissionHome', false)
export class MissionHomeComp extends CCComp {
/** 调试日志开关 */
debugMode: boolean = false;
/** 主页按钮节点(预留) */
@property(Node)
home_btn=null!
/** 英雄图鉴按钮节点(预留) */
@property(Node)
hero_btn=null!
/** 排行榜按钮节点 */
@property(Node)
rank_btn=null!
/** 注册任务结束事件 */
protected onLoad(): void {
this.on(GameEvent.MissionEnd,this.mission_end,this)
}
/** 视图层逻辑代码分离演示 */
/** 启动时显示主页 */
start() {
this.home_active()
}
onEnable(){
}
update(dt:number){
}
/**
* 开始任务:
* 1. 打印日志。
* 2. 分发 MissionStart 事件,驱动 MissionComp / MissionCardComp 初始化战斗。
* 3. 隐藏主页节点。
*/
start_mission() {
mLogger.log(this.debugMode, 'MissionHomeComp', "start_mission")
oops.message.dispatchEvent(GameEvent.MissionStart, {})
this.node.active=false;
}
/** 打开排行榜弹窗 */
openRanks(){
oops.gui.open(UIID.Ranks)
}
/** 任务结束回调:重新显示主页 */
mission_end(){
mLogger.log(this.debugMode, 'MissionHomeComp', "[MissionHomeComp]=>mission_end")
this.home_active()
}
/** 激活主页显示:刷新数据并显示节点 */
home_active(){
this.uodate_data()
this.node.active=true
}
/** 更新主页显示数据(预留) */
uodate_data(){
}
/**
* 判断是否运行在微信小游戏环境。
* @returns true = 微信小游戏环境
*/
isWxClient(){
return typeof wx !== 'undefined' && typeof (wx as any).getSystemInfoSync === 'function';
}
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
/** ECS 组件移除时销毁节点 */
reset() {
this.node.destroy();
}