5

私は cocos2dx を使用して小さなゲームを作成しています。ゲームのアクティビティで、戻るボタンを処理するために次の機能を提供しています。

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {
     return super.onKeyDown(keyCode, event);
 }

 @Override
 public void onDestroy()
 {
     android.os.Process.killProcess(android.os.Process.myPid());
     super.onDestroy();
 }

戻るボタンを押すと、logcat に次の警告が表示されます

キーチャートファイルを開けません

keycharmap ファイル '/system/usr/keychars/qtouch-touchscreen.kcm.bin' のロード中にエラーが発生しました。hw.keyboards.65538.devname='qtouch-touchscreen'

呼び出しは onKeyDown または onDestroy 関数に到達しません。

この警告が発生する理由と、Android の戻るボタンを処理できない理由を教えてください。

関数は私のJava Androidプロジェクトでは正常に機能しますが、cocos2d-xプロジェクトでは機能しません

4

5 に答える 5

8

ここのファイルで処理されていますCocos2dxGLSurfaceView.java

以下に変更しますmyActivity。cocos2dActivity はどこにありますか

        case KeyEvent.KEYCODE_BACK:
                    AlertDialog ad = new AlertDialog.Builder(myActivity)
                    .setTitle("EXIT?")
                    .setMessage("Do you really want to exit?")
                    .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            ((Cocos2dxActivity)myActivity).finish();
                        }
                    })
                    .setNegativeButton("NO", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    }).create();
                    ad.show();
            return true;
        case KeyEvent.KEYCODE_MENU:
于 2012-12-04T07:47:45.237 に答える
2

戻るボタンの押下を処理するにonBackPressed()は、この 2 つのメソッドではなく、アクティビティのメソッドを再定義する必要があります。

于 2012-12-04T07:07:28.573 に答える
1

アプリが onKeyDown のオーバーライド メソッドを実装するだけで、

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Here to implements for your code.
        Log.d(TAG, "KEYCODE_BACK");
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-12-04T07:21:05.540 に答える
1

タッチを有効にしましたか?そうでない場合は、有効にしてください。問題が解決されることを願っています。

ゲーム画面のボタンだと思います。

于 2012-12-04T07:04:44.743 に答える