import { _decorator,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 { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { HeroCard } from "../monster/HeroCard"; import { HeroCardViewComp } from "../monster/HeroCardViewComp"; const { ccclass, property } = _decorator; /** 视图层对象 */ @ccclass('ControllerComp') @ecs.register('Controller', false) export class ControllerComp extends CCComp { /** 视图层逻辑代码分离演示 */ start() { this.load_cards() // var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象 // this.on(ModuleEvent.Cmd, this.onHandler, this); } /** 全局消息逻辑处理 */ // private onHandler(event: string, args: any) { // switch (event) { // case ModuleEvent.Cmd: // break; // } // } shuaxin(dt: number) { smc.vm_data.shuaxin.min += smc.vm_data.shuaxin.speed*dt; if (smc.vm_data.shuaxin.min >= smc.vm_data.shuaxin.max) { smc.vm_data.shuaxin.min = 0; // oops.message.dispatchEvent("do_add_hero",this) this.load_cards() } } load_cards() { let old_cards = ecs.query(ecs.allOf(HeroCardViewComp)) if (old_cards.length > 0) { old_cards.forEach(element => { element.destroy(); }); } // console.log(old_cards) let cards_node= this.node.getChildByName("cards") let x=0 let y=0 for (let i = 0; i < 5; i++) { let card = ecs.getEntity(HeroCard); let pos = v3(x,y) card.load(pos,1001,cards_node); x=x+120 } this.node.getChildByName("cards").getChildByName("active").active = false } /** 转场 */ protected update(dt: number): void { this.shuaxin(dt) } /** 视图对象通过 ecs.Entity.remove(ControllerComp) 删除组件是触发组件处理自定义释放逻辑 */ reset() { this.node.destroy(); } }