CocosCreator-如何处理键盘事件

2021-03-25  本文已影响0人  程序猿TODO

Cocos Creator的 cc.Node 有一套完整的事件监听和分发机制。在这套机制之上,引擎提供了一些基础的节点相关的系统事件。

Cocos Creator支持的系统事件包含鼠标、触摸、键盘、重力传感等四种,其中鼠标和触摸事件是被直接触发在相关节点上的,所以称为节点系统事件。与之对应的,键盘和重力传感事件被称为全局系统事件。

本文主要讲述如何处理全局系统中的键盘事件。过程非常简单,只要注册该事件类型,并编写相应的处理函数即可,如下:

在 node 节点的 onLoad 中注册键盘事件响应

onLoad () {
    cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
    cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
},

在 node 节点的 onDestroy 中注销键盘事件响应

onDestroy () {
        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
},

处理按键按下事件

onKeyDown (event) {
        switch(event.keyCode) {
            case cc.KEY.ctrl:
                cc.log('turn down ctrl');
                ....
                break;
            case cc.KEY.z:
                cc.log('turn down z');
                ....
                break;
        }
},

处理按键释放事件

onKeyUp (event) {
        switch(event.keyCode) {
            case cc.KEY.ctrl:
                cc.log('turn up ctrl');
                ....
                break;
            case cc.KEY.z:
                cc.log('turn up z');
                ....
                break;
        }
},

最后,附上 Cocos Creator 中定义的键盘按键的索引列表。(索引对应的具体键位请参照官方文档:http://docs.cocos.com/creator/api/zh/enums/KEY.html

索引

上一篇下一篇

猜你喜欢

热点阅读