Cocos Creator 实现安卓按【后退】键退出游戏
Cocos Creator打包出来的安卓游戏,默认是不响应安卓系统的[后退]按键的,需要监听相应的系统事件来实现。
具体步骤
以下是实现通过[后退]按键退出游戏的步骤:
Cocos Creator 版本:2.0.9
- 监听系统按键
通过 cc.systemEvent.on 可以监听对应的系统事件。
其中系统按键事件是:cc.SystemEvent.EventType.KEY_DOWN
if(cc.sys.platform == cc.sys.ANDROID){
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
}
- 处理按键信息
在onKeyDown方法出处理[后退]键
Creator 2.x版本以上,[后退]键对应的是 cc.macro.KEY.back
onKeyDown(event){
switch (event.keyCode) {
case cc.macro.KEY.back:
// 参考步骤3
break;
}
}
- 退出游戏
为了防止玩家误点,一般会要求再点一次后退才确认退出游戏。
退出游戏的话,用 cc.game.end()
简单流程:
1). 添加标记_toExitGame来记录首次按键。
2). 首次点击后退时,该标记设置为true,发出消息,用于弹出提示“再次点击后退,退出游戏”。
3). 如果3秒内没有再次点击,则重置该标记。
示例
if (!this._toExitGame) {
// 首次点击,重置该标记
this._toExitGame = true;
// 发出后退消息,这里监听者来弹出提示:再次点击后退,退出游戏。
// 这里要替换成自己的消息处理方法
// AppFacade.getInstance().sendNotification(GAMEEVENTS.APP.TRY_EXIT);
// 3秒后没有再次按【后退】按钮,则重置该标记
this.node.runAction(cc.sequence(cc.delayTime(3), cc.callFunc(() => {
this._toExitGame = false;
// this.label.string = '';
})));
}else{
// 已经点击过一次,则直接退出
cc.game.end();
return;
}
感谢
感谢网友Leo501在简书上分享的详细教程
https://www.jianshu.com/p/9f641ac2b6df