zoukankan      html  css  js  c++  java
  • 在cocos2dx的android项目中,怎么让onKeyDown方法执行

    首先,进入到引擎目录的cocosplatformandroidjavasrcorgcocos2dxlib,打开Cocos2dxGLSurfaceView.java文件,

    找到onKeyDown方法,方法如下:

    public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
            switch (pKeyCode) {
                case KeyEvent.KEYCODE_BACK:
                    
                    Cocos2dxVideoHelper.mVideoHandler.sendEmptyMessage(Cocos2dxVideoHelper.KeyEventBack);
                case KeyEvent.KEYCODE_MENU:
                case KeyEvent.KEYCODE_DPAD_LEFT:
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                case KeyEvent.KEYCODE_DPAD_UP:
                case KeyEvent.KEYCODE_DPAD_DOWN:
                case KeyEvent.KEYCODE_ENTER:
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                case KeyEvent.KEYCODE_DPAD_CENTER:
                    this.queueEvent(new Runnable() {
                        @Override
                        public void run() {
                            Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
                        }
                    });
                    return true;
                default:
                    return super.onKeyDown(pKeyCode, pKeyEvent);
            }
        }

    修改为:

    public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
            switch (pKeyCode) {
                case KeyEvent.KEYCODE_BACK:
                    return false;
                    //Cocos2dxVideoHelper.mVideoHandler.sendEmptyMessage(Cocos2dxVideoHelper.KeyEventBack);
                case KeyEvent.KEYCODE_MENU:
                case KeyEvent.KEYCODE_DPAD_LEFT:
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                case KeyEvent.KEYCODE_DPAD_UP:
                case KeyEvent.KEYCODE_DPAD_DOWN:
                case KeyEvent.KEYCODE_ENTER:
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                case KeyEvent.KEYCODE_DPAD_CENTER:
                    this.queueEvent(new Runnable() {
                        @Override
                        public void run() {
                            Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleKeyDown(pKeyCode);
                        }
                    });
                    return true;
                default:
                    return super.onKeyDown(pKeyCode, pKeyEvent);
            }
        }

    然后在主Activity里面重写onKeyDown方法,在游戏中点击返回按钮,就可以进入到重写的onKeyDown方法里面了。

  • 相关阅读:
    vue组件上绑定原生事件
    vue中sync的使用原来这么简单
    vscode快捷键
    justify-content: space-between能够对齐的解决办法
    day_01:__all__、__init__、推导式
    单元测试框架pytest
    ELK从入门到实战
    HTB::Return
    Codeforces Round #752 (Div. 2) ABCD
    动态神经网络综述阅读笔记
  • 原文地址:https://www.cnblogs.com/Colored-Mr/p/4959787.html
Copyright © 2011-2022 走看看