| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | import { _decorator, Label, PhysicsGroup } from 'cc';import { LifeBar } from './LifeBar';import { Role } from '../Role';import { Enemy } from './Enemy';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.hp = this.enemyTotalHp;        this._initLifeBar();        super._setupPhysics();    }    //初始化血条    private _initLifeBar() {        this._lifeBar._curHp = this.hp;        this._lifeBar._totalHp = this.hp;    }    update(deltaTime: number) {        if (this._lifeBar._curHp <= 0) {            console.log("GameOver! RoleWin!");        }        this._strMyHp.string = `${this._lifeBar._curHp}/${this.hp}`;    }    //必须实现抽象方法    protected _getCollisionGroup(): number {        return PhysicsGroup.Enemy; //实际分组值根据项目设置    }    protected _isValidTarget(target: Role): boolean {        //通过组件类型判断是否为敌人        return target instanceof Enemy;    }}
 |