2024-02-28 03:25:11 -08:00
|
|
|
import {
|
|
|
|
_decorator,
|
|
|
|
Component,
|
|
|
|
EventKeyboard,
|
|
|
|
EventMouse,
|
|
|
|
EventTouch,
|
|
|
|
Input,
|
|
|
|
input,
|
|
|
|
KeyCode,
|
|
|
|
screen as Screen,
|
|
|
|
} from 'cc';
|
2024-02-27 18:19:33 -08:00
|
|
|
import { Flipper } from './Flipper';
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
|
|
@ccclass('FlipperController')
|
|
|
|
export class FlipperController extends Component {
|
|
|
|
@property(Flipper)
|
|
|
|
public lFlipper: Flipper;
|
|
|
|
@property(Flipper)
|
|
|
|
public rFlipper: Flipper;
|
|
|
|
|
|
|
|
protected onLoad(): void {
|
|
|
|
// Mouse input
|
|
|
|
// input.on(Input.EventType.MOUSE_DOWN, this.HandleFlipperActive, this);
|
|
|
|
// input.on(Input.EventType.MOUSE_UP, this.HandleFlipperDeActive, this);
|
|
|
|
|
|
|
|
// Keyboard
|
|
|
|
input.on(Input.EventType.KEY_DOWN, this.OnKeyDown, this);
|
|
|
|
input.on(Input.EventType.KEY_UP, this.OnKeyUp, this);
|
|
|
|
|
|
|
|
// Touch
|
|
|
|
input.on(Input.EventType.TOUCH_START, this.HandleFlipperActiveTouch, this);
|
|
|
|
input.on(Input.EventType.TOUCH_END, this.HandleFlipperDeActiveTouch, this);
|
|
|
|
}
|
|
|
|
//#region Handle mouse/touch input
|
|
|
|
private HandleFlipperActive(params: EventMouse): void {
|
2024-02-28 03:25:11 -08:00
|
|
|
if (params.getLocationX() > screen.width / 2) this.rFlipper.ActiveFlipper();
|
2024-02-27 18:19:33 -08:00
|
|
|
else this.lFlipper.ActiveFlipper();
|
|
|
|
}
|
|
|
|
private HandleFlipperDeActive(params: EventMouse): void {
|
|
|
|
this.rFlipper.DeActiveFlipper();
|
|
|
|
this.lFlipper.DeActiveFlipper();
|
|
|
|
}
|
|
|
|
private HandleFlipperActiveTouch(params: EventTouch): void {
|
2024-02-28 03:25:11 -08:00
|
|
|
if (params.getLocationX() > Screen.windowSize.x / 2) {
|
|
|
|
console.log('right');
|
2024-02-27 18:19:33 -08:00
|
|
|
this.rFlipper.ActiveFlipper();
|
2024-02-28 03:25:11 -08:00
|
|
|
} else {
|
|
|
|
console.log('left');
|
2024-02-27 18:19:33 -08:00
|
|
|
this.lFlipper.ActiveFlipper();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private HandleFlipperDeActiveTouch(params: EventTouch): void {
|
|
|
|
this.rFlipper.DeActiveFlipper();
|
|
|
|
this.lFlipper.DeActiveFlipper();
|
|
|
|
}
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
private OnKeyDown(event: EventKeyboard) {
|
|
|
|
switch (event.keyCode) {
|
2024-02-28 03:25:11 -08:00
|
|
|
case KeyCode.ARROW_LEFT:
|
2024-02-27 18:19:33 -08:00
|
|
|
case KeyCode.KEY_A:
|
|
|
|
this.lFlipper.ActiveFlipper();
|
|
|
|
break;
|
2024-02-28 03:25:11 -08:00
|
|
|
case KeyCode.ARROW_RIGHT:
|
2024-02-27 18:19:33 -08:00
|
|
|
case KeyCode.KEY_D:
|
|
|
|
this.rFlipper.ActiveFlipper();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private OnKeyUp(event: EventKeyboard) {
|
|
|
|
switch (event.keyCode) {
|
2024-02-28 03:25:11 -08:00
|
|
|
case KeyCode.ARROW_LEFT:
|
2024-02-27 18:19:33 -08:00
|
|
|
case KeyCode.KEY_A:
|
|
|
|
this.lFlipper.DeActiveFlipper();
|
|
|
|
break;
|
2024-02-28 03:25:11 -08:00
|
|
|
case KeyCode.ARROW_RIGHT:
|
2024-02-27 18:19:33 -08:00
|
|
|
case KeyCode.KEY_D:
|
|
|
|
this.rFlipper.DeActiveFlipper();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|