| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class KeyBoard extends cc.Component {
- @property(cc.Node)
- btnScreenLeft: cc.Node = null;
- @property(cc.Node)
- btnScreenRight: cc.Node = null;
- public static Instance: KeyBoard;
- onLoad() {
- KeyBoard.Instance = this;
- this.btnScreenLeft.on(cc.Node.EventType.TOUCH_START, this.onClick_btnScreenLeft.bind(this));
- this.btnScreenRight.on(cc.Node.EventType.TOUCH_START, this.onClick_btnScreenRight.bind(this));
- cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
- }
- onDestroy() {
- if (KeyBoard.Instance == this) KeyBoard.Instance = null;
- cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
- }
- onClick_btnScreenLeft() {
- this.controlBoy(cc.macro.KEY.a);
- }
- onClick_btnScreenRight() {
- this.controlBoy(cc.macro.KEY.d);
- }
- onKeyDown(e: cc.Event.EventKeyboard) {
- this.controlBoy(e.keyCode);
- }
- controlBoy(keyCode: cc.macro.KEY) {
- let boy = window.boy;
- let gm = window.gm;
- if (!boy || !boy.isValid || gm.isGameOver) return;
- switch (keyCode) {
- case cc.macro.KEY.a:
- boy.leftUp();
- break;
- case cc.macro.KEY.w:
- boy.up();
- break;
- case cc.macro.KEY.d:
- boy.rightUp();
- break;
- case cc.macro.KEY.j:
- boy.attack();
- break;
- case cc.macro.KEY.k:
- boy.autoAttack();
- break;
- case cc.macro.KEY.q:
- boy.forward(-1);
- break;
- case cc.macro.KEY.e:
- boy.forward(1);
- break;
- case cc.macro.KEY.r:
- boy.jump();
- break;
- case cc.macro.KEY.t:
- boy.cancelRun();
- break;
- }
- }
- }
|