import { _decorator, instantiate, Prefab, resources, Sprite, SpriteAtlas, UITransform } 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 { HeroInfo, HeroList } from "../common/config/heroSet"; import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { UiHeroComp } from "../hero/UiHeroComp"; import { BoxSet } from "../common/config/BoxSet"; import { smc } from "../common/SingletonModuleComp"; import { HeroSelect } from "../hero/HeroSelect"; import { MSklist, SkillSet } from "../common/config/SkillSet"; import { MSCard } from "./MSCard"; import { CardControllerComp } from "./CardController"; import { MissionComp } from "./MissionComp"; import { MSCardComp } from "./MSCardComp"; const { ccclass, property } = _decorator; /** 视图层对象 */ @ccclass('MissionHomeComp') @ecs.register('MissionHome', false) export class MissionHomeComp extends CCComp { heros:any[]=[]; heros_pos:any=[ {uuid:0,px:-300}, {uuid:0,px:-200}, {uuid:0,px:-100}, {uuid:0,px:0}, {uuid:0,px:100}, ] /** 视图层逻辑代码分离演示 */ start() { // var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象 // this.on(ModuleEvent.Cmd, this.onHandler, this); this.load_hero_card() this.load_ui_heros() this.load_skill_card() this.select_skill() } start_mission() { console.log("mission_home : start_mission") for(let i=0;i(HeroSelect) hcc.load(HeroList[i],parent) } } load_skill_card(){ let ms_num:number =MSklist.length let parent= this.node.getChildByName("skills").getChildByName("view").getChildByName("content") let height=ms_num*135 parent.getComponent(UITransform).width=height for (let i = 0; i < ms_num; i++) { let msc =ecs.getEntity(MSCard) msc.load(MSklist[i],parent,2) } } load_ui_heros(){ for(let i=0;i { const sprite = this.node.getChildByName("msk").getChildByName("icon").getComponent(Sprite); sprite.spriteFrame = atlas.getSpriteFrame(SkillSet[smc.mission.mskill].path); }); } select_hero(h_uuid:number){ for(let i=0;i<4;i++){ if(this.heros_pos[i].uuid==0){ this.heros_pos[i].uuid=h_uuid this.call_hero(h_uuid,i) break } } } cancel_hero(h_uuid:number){ for(let i=0;i<4;i++){ if(this.heros_pos[i].uuid==h_uuid){ this.heros_pos[i].uuid=0 this.destory_hero(h_uuid) } } } call_hero(h_uuid:number,index:number){ var path = "game/heros/uiheros/"+HeroInfo[h_uuid].path; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); var scene = smc.map.MapView.scene; node.parent = scene.entityLayer!.node! node.setPosition(this.heros_pos[index].px,BoxSet.GAME_LINE,0); let comp = node.getComponent(UiHeroComp) comp.h_uuid = h_uuid this.heros.push(comp) } destory_hero(h_uuid:number){ console.log("destory hero",this.heros) for(let i=0;i