cocos2d-x 3.2 实现 Andorid “请再按一次退出游戏”,双击返回键退出游戏

30 篇文章 0 订阅
27 篇文章 0 订阅

首先将cocos2d/cocos/platform/android/src/org/cocos2dx/lib下的Cocos2dxGLSurfaceView.java里的

   public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) 函数修改一下,改成如下样式,让KeyEvent.KEYCODE_BACK时直接返回false,防止其阻断我们对返回键的监听。

[java]  view plain  copy
  1. public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {  
  2.     switch (pKeyCode) {  
  3.         case KeyEvent.KEYCODE_BACK:  
  4.             return false;  
  5.             // Cocos2dxVideoHelper.mVideoHandler.sendEmptyMessage(Cocos2dxVideoHelper.KeyEventBack);  
  6.         case KeyEvent.KEYCODE_MENU:  
  7.         case KeyEvent.KEYCODE_DPAD_LEFT:  
  8.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
  9.         case KeyEvent.KEYCODE_DPAD_UP:  
  10.         case KeyEvent.KEYCODE_DPAD_DOWN:  
  11.         case KeyEvent.KEYCODE_ENTER:  
  12.         case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:  
  13.         case KeyEvent.KEYCODE_DPAD_CENTER:  
  14.             this.queueEvent(new Runnable() {  
  15.                 @Override  
  16.                 public void run() {  
  17.                     Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);  
  18.                 }  
  19.             });  
  20.             return true;  
  21.         default:  
  22.             return super.onKeyDown(pKeyCode, pKeyEvent);  
  23.     }  
  24. }  


之后在跟根目录的src/org.cocos2dx.cpp/AppActivity.java里面的主函数里添加如下代码即可


[java]  view plain  copy
  1. private long mkeyTime = 0;  
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  3.     //二次返回退出  
  4.     if (keyCode == KeyEvent.KEYCODE_BACK) {  
  5.         if ((System.currentTimeMillis() - mkeyTime) > 2000) {  
  6.             mkeyTime = System.currentTimeMillis();  
  7.             Toast.makeText(this"请再按一次退出游戏", Toast.LENGTH_LONG).show();  
  8.         } else {  
  9.             finish();  
  10.             System.exit(0);  
  11.         }  
  12.         return false;  
  13.     }  
  14.     return super.onKeyDown(keyCode, event);  
  15. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值