48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
/*
|
|
* @Author: dgflash
|
|
* @Date: 2022-02-12 13:38:13
|
|
* @LastEditors: dgflash
|
|
* @LastEditTime: 2022-08-17 12:36:31
|
|
*/
|
|
|
|
import { EventTouch, Vec3, _decorator } from 'cc';
|
|
import { ecs } from '../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS';
|
|
import { CCComp } from '../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp';
|
|
import { smc } from '../../common/SingletonModuleComp';
|
|
import { Role } from '../Role';
|
|
import { JoystickDataType, RoleViewUIJoystick, SpeedType } from './RoleViewUIJoystick';
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass("RoleViewUIControllerComp")
|
|
@ecs.register('RoleViewUIController', false)
|
|
export class RoleViewUIControllerComp extends CCComp {
|
|
@property({ type: RoleViewUIJoystick })
|
|
joystick: RoleViewUIJoystick = null!;
|
|
|
|
private target: Role = null!;
|
|
|
|
start() {
|
|
this.target = smc.own;
|
|
this.joystick.onController = (event: EventTouch, data: JoystickDataType) => {
|
|
switch (data.type) {
|
|
case SpeedType.NORMAL:
|
|
case SpeedType.FAST:
|
|
this.target.RoleView.runJoystick(data.vector);
|
|
break;
|
|
case SpeedType.STOP:
|
|
this.target.RoleView.runJoystick(Vec3.ZERO);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
onDestroy() {
|
|
this.ent.remove(RoleViewUIControllerComp);
|
|
super.onDestroy();
|
|
}
|
|
|
|
reset(): void {
|
|
|
|
}
|
|
} |