import { _decorator, Component, Node } from 'cc'; import { app } from '../../../App'; import { GModeEvent } from '../../../battle/modes/GMode'; import { tween } from 'cc'; import { Vec3 } from 'cc'; import RandomUtil from '../../../../../extensions/ngame/assets/ngame/util/RandomUtil'; import { v3 } from 'cc'; const { ccclass, property } = _decorator; //游戏震屏 @ccclass('ModeShakeScreen') export class ModeShakeScreen extends Component { local:Vec3; onLoad(){ this.local = this.node.position.clone(); app.event.on(GModeEvent.HIT,this.onShakeScreen,this); } protected onDestroy(): void { app.event.off(GModeEvent.HIT,this.onShakeScreen,this); } onShakeScreen(){ tween(this.node). to(0.1, { position: this.local.clone().add(v3(RandomUtil.RandomInt(-5, 5), RandomUtil.RandomInt(-5, 0), 0)) }) .call(() => { tween(this.node).to(0.1 / 2, { position: this.local.clone() }).start(); }) .start(); } }