mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 19:34:47 +00:00
55 lines
1.2 KiB
TypeScript
55 lines
1.2 KiB
TypeScript
import { _decorator, Component, Node } from 'cc';
|
|
import { app } from '../../../App';
|
|
import GRoleDefault from '../../../battle/base/role/GRoleDefault';
|
|
import { GData } from '../../../consts/GData';
|
|
import { v2 } from 'cc';
|
|
import { Prefab } from 'cc';
|
|
import { instantiate } from 'cc';
|
|
import { v3 } from 'cc';
|
|
import { ModeRenderHitText } from './ModeRenderHitText';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
export enum ModeRenderEvent{
|
|
//受击
|
|
HIT = "ModeRenderEvent_HIT"
|
|
}
|
|
|
|
@ccclass('ModeRender')
|
|
export class ModeRender extends Component {
|
|
|
|
//受击预制体
|
|
@property(Prefab)
|
|
hitPrefab:Prefab;
|
|
|
|
onLoad(){
|
|
|
|
app.event.on(ModeRenderEvent.HIT,this.onHit,this);
|
|
|
|
}
|
|
|
|
protected onDestroy(): void {
|
|
|
|
app.event.off(ModeRenderEvent.HIT,this.onHit,this);
|
|
|
|
}
|
|
|
|
//受击
|
|
onHit(role:GRoleDefault,hit:number){
|
|
|
|
if(!role.get()) return;
|
|
|
|
let rolePos = GData.WorldCanvas.camera.worldToScreen(role.node.worldPosition);
|
|
|
|
let hitNode = instantiate(this.hitPrefab);
|
|
|
|
this.node.addChild(hitNode);
|
|
hitNode.position = rolePos.add(v3(0,100,0));
|
|
|
|
hitNode.getComponent(ModeRenderHitText).setText(hit);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|