import { _decorator, Component, instantiate, Node, Vec3 } from 'cc'; import { ModulerBase } from '../../GameFrameWork/ModulerBase'; import { resMgr } from '../../../Frames/ResourcesMgr'; import { Role } from '../Role'; import { Enemy } from './Enemy'; import { LevelData, RoleData } from '../../../DataItem/ItemData'; import { dataMgr } from '../../../Frames/DataManager'; import { GameInfo } from '../../../GameInfo'; import { GameMgr } from '../../GameFrameWork/GameMgr'; import { TouchMgr } from '../TouchMgr'; import { TouchGame } from '../TouchGame'; import { Tools } from '../../Tools/Tools'; import { Top } from './Top'; import { gameResMgr } from '../../GameResMgr'; const { ccclass, property } = _decorator; @ccclass('EnemyMgr') export class EnemyMgr extends ModulerBase { private _lvDts: LevelData[] = []; private _lvDt: LevelData = null; private _roleDatas: RoleData[] = []; private _hight: number = 0; private _top: Top = null; protected onLoad(): void { this._lvDts = dataMgr.getAllDataByName("LevelDt"); this._hight = GameMgr.Instance.getModuler(TouchGame)._hight; this._roleDatas = dataMgr.getAllDataByName("RoleCardData"); this._top = GameMgr.Instance.getModuler(Top); } init() { //第几关的数据 this._lvDt = this._lvDts[GameInfo.Instance.getCurlv() + 1]; this._createEnemy(); this.schedule(() => { this._createEnemy(); }, 60) //设置敌方防御塔血量 this._top.enemyTotalHp = this._lvDt.enemyTowerHp; } private _createEnemy() { const enemy: Node = instantiate(resMgr.getPrefab("Enemy")); enemy.parent = this.node; const enemyTS = enemy.getComponent(Enemy); const imgNameArray = this._lvDt.imgName; if (imgNameArray && imgNameArray.length > 0) { //随机获取图片名 //const randomIndex = Math.floor(Math.random() * imgNameArray.length) const name = imgNameArray[Tools.randomNumber(imgNameArray.length)]; //0 1 2 3 4 const y = 180 + (Tools.randomNumber(5) + 1) * this._hight - this._hight / 2; enemyTS.init(name, new Vec3(1230, y, 0), this._roleDatas, 0); } else { Error("imgNameArray is null"); } } }