import { _decorator, v3, Vec3 } 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 { Monster } from "../hero/Mon"; import { BoxSet } from "../common/config/BoxSet"; import { HeroSet, MonSet } from "../common/config/heroSet"; import { Missions } from "../common/config/MissionSet"; import { RandomManager } from "db://oops-framework/core/common/random/RandomManager"; import { Timer } from "db://oops-framework/core/common/timer/Timer"; import { smc } from "../common/SingletonModuleComp"; const { ccclass, property } = _decorator; /** 视图层对象 */ @ccclass('MissionMonCompComp') @ecs.register('MissionMonComp', false) export class MissionMonCompComp extends CCComp { timer:Timer=new Timer(3) /** 视图层逻辑代码分离演示 */ start() { // var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象 // this.on(ModuleEvent.Cmd, this.onHandler, this); // this.test_call() } protected update(dt: number): void { if(!smc.mission.play||smc.mission.pause) return if(this.timer.update(dt)){ this.mon_refresh() } } test_call(){ this.addMonster(5202,0,true) } mon_refresh(){ let num =3 let t_num= Missions[0].length let y_num= Missions[1].length let b_num= Missions[2].length let tc=1 let yc=2 let bc=1 let x=RandomManager.instance.getRandomInt(0,y_num,1) this.addMonster(Missions[0][x],0) x=RandomManager.instance.getRandomInt(0,y_num,1) this.addMonster(Missions[0][x],1) x=RandomManager.instance.getRandomInt(0,y_num,1) this.addMonster(Missions[0][x],2) x=RandomManager.instance.getRandomInt(0,y_num,1) this.addMonster(Missions[0][x],3) console.log("Missions t:"+x,Missions[0][x]) } private addMonster(uuid:number=1001,i:number=0,is_boss:boolean=false) { let mon = ecs.getEntity(Monster); let scale = -1 let pos:Vec3 = v3(MonSet[i].pos); mon.load(pos,scale,uuid,is_boss); } /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ reset() { this.node.destroy(); } }