Files
pixelheros/assets/script/game/map/CardController.ts
panw 79531e7318 fix: 修复多项UI布局和功能问题
1. 调整任务prefab的位置和内容尺寸
2. 注释掉加载动画自动隐藏逻辑
3. 修改合成规则逻辑适配配置项
4. 调整英雄移动预制体的缩放参数
5. 修改地图预制体的节点名称、尺寸和对齐属性
6. 更新角色控制器预制体的组件和布局参数
2026-05-14 16:40:44 +08:00

102 lines
3.5 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;
let missionNode = this.node.getChildByName("mission");
if (missionNode) {
missionNode.active = false;
}
}
/** ECS 组件移除时销毁节点 */
reset() {
this.node.destroy();
}
}