| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- import { _decorator, director, find, Label, PhysicsGroup } from 'cc';
 
- import { LifeBar } from './LifeBar';
 
- import { Role } from '../Role';
 
- import { Enemy } from './Enemy';
 
- import { MyTower } from './MyTower';
 
- import { GameInfo } from '../../../GameInfo';
 
- import { GameMgr } from '../../GameFrameWork/GameMgr';
 
- import { GameOver } from './GameOver';
 
- const { ccclass, property } = _decorator;
 
- @ccclass('EnemyTower')
 
- export class EnemyTower extends Role {
 
-     private _lifeBar: LifeBar = null;
 
-     private _strMyHp: Label = null;
 
-     //敌人防御塔总血量通过数据表获取
 
-     enemyTotalHp: number = null;
 
-     protected onLoad(): void {
 
-         this._lifeBar = this.node.getComponent(LifeBar);
 
-         this._strMyHp = this.node.getChildByPath("ProgressBar/Label").getComponent(Label);
 
-     }
 
-     start() {
 
-         this.initData();
 
-     }
 
-     initData(){
 
-         this.hp = this.enemyTotalHp;
 
-         this._initLifeBar();
 
-     }
 
-     //初始化血条
 
-     private _initLifeBar() {
 
-         this._lifeBar._curHp = this.hp;
 
-         this._lifeBar._totalHp = this.hp;
 
-         this._lifeBar.progressBar.progress = 1;
 
-     }
 
-     update(deltaTime: number) {
 
-         if (this._lifeBar._curHp <= 0) {
 
-             this._gameOverDtSettlement();
 
-         }
 
-         this._strMyHp.string = `${this._lifeBar._curHp}/${this.hp}`;
 
-     }
 
-     //游戏结束数据结算
 
-     private _gameOverDtSettlement() {
 
-         GameInfo.Instance.setIsGameOver(true);
 
-         GameInfo.Instance.setOverWin(true);
 
-         const myTower = find("Canvas/GameRoot/MyTower").getComponent(MyTower);
 
-         this._lifePercent(myTower.getCurHp(), myTower.getTotalHp())
 
-         GameMgr.Instance.getModuler(GameOver).show();
 
-         director.pause();
 
-     }
 
-     private _lifePercent(curHp: number, totalHp: number) {
 
-         if (totalHp <= 0) {
 
-             return;
 
-         }
 
-         let lifePercent = Math.floor((curHp / totalHp) * 100);
 
-         lifePercent = Math.max(0, Math.min(lifePercent, 100));
 
-         GameInfo.Instance.setLifePecent(lifePercent);
 
-     }
 
-     //必须实现抽象方法
 
-     protected _getCollisionGroup(): number {
 
-         return PhysicsGroup.Enemy; //实际分组值根据项目设置
 
-     }
 
-     protected _isValidTarget(target: Role): boolean {
 
-         //通过组件类型判断是否为敌人
 
-         return target instanceof Enemy;
 
-     }
 
- }
 
 
  |