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

首先将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. }  

你可能感兴趣的:(lua开发,安卓打包,游戏开发,cocos2d-x)