| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | import { _decorator, Component, instantiate, Node, Sprite, Vec3 } from 'cc';import { ModulerBase } from '../../GameFrameWork/ModulerBase';import { resMgr } from '../../../Frames/ResourcesMgr';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 { TouchGame } from '../TouchGame';import { Tools } from '../../Tools/Tools';import { EnemyTower } from './EnemyTower';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 _enemyTower: Node = null;    //地图背景    private _bg: Node = null;    //角色卡牌消耗量    private _cardConsume: Map<string, number> = new Map();    protected onLoad(): void {        this._bg = this.node.parent.getChildByName("Bg");        this._lvDts = dataMgr.getAllDataByName("LevelDt");        this._hight = GameMgr.Instance.getModuler(TouchGame)._hight;                this._enemyTower = this.node.parent.getChildByName("EnemyTower");    }    init() {        this._roleDatas = dataMgr.getAllDataByName("RoleCardData");        //第几关的数据        this._lvDt = this._lvDts[GameInfo.Instance.getCurlv() - 1];        this._createEnemy();        this.schedule(() => {            this._createEnemy();        }, 10)        //设置敌方防御塔血量        this._enemyTower.getComponent(EnemyTower).enemyTotalHp = this._lvDt.enemyTowerHp;        //设置背景        this._bg.getComponent(Sprite).spriteFrame = resMgr.getSpriteFrame(this._lvDt.bgName);    }    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 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, -1);        } else {            Error("imgNameArray is null");        }    }}
 |