import { _decorator, Component, EventKeyboard, EventMouse, EventTouch, Input, input, KeyCode, log, Node, view } from 'cc'; 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 { if (params.getLocationX() > screen.width / 2) this.rFlipper.ActiveFlipper(); else this.lFlipper.ActiveFlipper(); } private HandleFlipperDeActive(params: EventMouse): void { this.rFlipper.DeActiveFlipper(); this.lFlipper.DeActiveFlipper(); } private HandleFlipperActiveTouch(params: EventTouch): void { if (params.getLocationX() > view.getFrameSize().x) { console.log("right"); this.rFlipper.ActiveFlipper(); } else { console.log("left"); this.lFlipper.ActiveFlipper(); } } private HandleFlipperDeActiveTouch(params: EventTouch): void { this.rFlipper.DeActiveFlipper(); this.lFlipper.DeActiveFlipper(); } //#endregion private OnKeyDown(event: EventKeyboard) { switch (event.keyCode) { case KeyCode.KEY_A: this.lFlipper.ActiveFlipper(); break; case KeyCode.KEY_D: this.rFlipper.ActiveFlipper(); break; } } private OnKeyUp(event: EventKeyboard) { switch (event.keyCode) { case KeyCode.KEY_A: this.lFlipper.DeActiveFlipper(); break; case KeyCode.KEY_D: this.rFlipper.DeActiveFlipper(); break; } } }