美文网首页Cocos CreatorCocos Creator
Cocos Creator 教程 : 监听 Android 返回

Cocos Creator 教程 : 监听 Android 返回

作者: 33b882c6c780 | 来源:发表于2019-01-20 18:22 被阅读1次

有时做原生游戏时,特别是Android平台需要监听返回键,在游戏中做出回应如返回游戏上一层或者是退出游戏。

exit_game.jpg

实现

  • 监听事件
//android 返回键
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
  • 取消事件
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
  • 回调处理
onKeyDown(event) {
        switch (event.keyCode) {
            case cc.KEY.back:
                if (this.isBackGame) {
                    cc.director.end();
                    return;
                }
                this.isBackGame = true;
                this.label.string = '再次按返回键\n将退出游戏';
                this.node.runAction(cc.sequence(cc.delayTime(3), cc.callFunc(() => {
                    this.isBackGame = false;
                    this.label.string = '';
                })));
                break;
        }
    },

完整代码

cc.Class({
    extends: cc.Component,

    properties: {
        label: {
            default: null,
            type: cc.Label
        },
        text: 'Hello, World!'
    },

    // use this for initialization
    onLoad: function () {
        this.label.string = this.text;
        this.registerEvent();
    },

    registerEvent() {
        //android 返回键
        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
    },

    onKeyDown(event) {
        switch (event.keyCode) {
            case cc.KEY.back:
                if (this.isBackGame) {
                    cc.director.end();
                    return;
                }
                this.isBackGame = true;
                this.label.string = '再次按返回键\n将退出游戏';
                this.node.runAction(cc.sequence(cc.delayTime(3), cc.callFunc(() => {
                    this.isBackGame = false;
                    this.label.string = '';
                })));
                break;
        }
    },

    offEvent() {
        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
    },

    // called every frame
    update: function (dt) {

    },

    onDestroy() {
        this.offEvent();
    }
});

关于cc.systemEvent

它是系统事件,systemEvent目前支持按键事件和重力感应事件。详情官方文档

最后

如果对你有用,请点喜欢哦。最后放出Demo给大家参考。

相关文章

网友评论

    本文标题:Cocos Creator 教程 : 监听 Android 返回

    本文链接:https://www.haomeiwen.com/subject/ugkxjqtx.html