12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { _decorator, Component, Node, ProgressBarComponent, Vec3, log } from 'cc';
- import { GameController } from '../GameController';
- import { MonsterBase } from './MonsterBase';
- import { MonsterHPUIPool } from './MonsterHPUIPool';
- const { ccclass, property } = _decorator;
- @ccclass('MonsterHP')
- export class MonsterHP extends Component {
-
- public monster:MonsterBase;
- private progressBar:ProgressBarComponent;
- private HELP_V3_0:Vec3=new Vec3();
- private HELP_V3_1:Vec3=new Vec3();
- start () {
- this.progressBar=this.getComponent(ProgressBarComponent);
- this.node.setScale(0,0,0);
- this.progressBar.progress=0;
- }
- onEnable():void{
- this.progressBar=this.getComponent(ProgressBarComponent);
- this.node.setScale(0,0,0);
- }
- update (deltaTime: number) {
- if(this.monster==null){
- return;
- }
- //更新位置
- this.monster.hpSocket.getWorldPosition(this.HELP_V3_0);
- GameController.single.camera.convertToUINode(this.HELP_V3_0,GameController.single.monsterHPUILayer,this.HELP_V3_1);
- this.node.setPosition(this.HELP_V3_1);
-
-
- //根据距离缩放血条
- let scale:number=1-Math.min(1,Math.abs(this.monster.node.worldPosition.z/GameController.single.middleStartNode.worldPosition.z*0.4));
- this.HELP_V3_0.set(scale,scale,scale);
- this.node.setScale(this.HELP_V3_0);
-
- //更新HP
- this.progressBar.progress=this.monster.hp/this.monster.maxHP;
- }
- }
|