50 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-11-17 18:29:39 +08:00
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';
2023-11-21 01:57:40 +08:00
import { Vec2 } from 'cc';
2023-12-23 19:00:53 +08:00
import { GModeEvent, GModeHitInfo } from '../../../battle/modes/GMode';
2023-11-17 18:29:39 +08:00
const { ccclass, property } = _decorator;
@ccclass('ModeRender')
export class ModeRender extends Component {
//受击预制体
@property(Prefab)
hitPrefab:Prefab;
onLoad(){
2023-12-23 19:00:53 +08:00
app.event.on(GModeEvent.HIT,this.onHit,this);
2023-11-17 18:29:39 +08:00
}
protected onDestroy(): void {
2023-12-23 19:00:53 +08:00
app.event.off(GModeEvent.HIT,this.onHit,this);
2023-11-17 18:29:39 +08:00
}
//受击
2023-12-23 19:00:53 +08:00
onHit(info:GModeHitInfo){
2023-11-17 18:29:39 +08:00
2023-12-23 19:00:53 +08:00
let rolePos = info.camera.worldToScreen(v3(info.world.x,info.world.y));
2023-11-17 18:29:39 +08:00
let hitNode = instantiate(this.hitPrefab);
this.node.addChild(hitNode);
2024-01-20 19:01:45 +08:00
hitNode.position = rolePos.add(v3(0,40,0));
2023-11-17 18:29:39 +08:00
2023-12-23 19:00:53 +08:00
hitNode.getComponent(ModeRenderHitText).setText(info.hit);
2023-11-17 18:29:39 +08:00
}
}