我正在使用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文件
加载keycharmap文件'/system/usr/keychars/qtouch-touchscreen.kcm.bin'时出错。 hw.keyboards.65538.devname = '的QTouch-触摸屏'
调用未达到onKeyDown或onDestroy函数。
请告诉我为什么会出现此警告以及为什么我无法处理Android后退按钮。
这些函数在我的java android项目中正常工作,但在我的cocos2d-x项目
中没有答案 0 :(得分:8)
此处已在文件Cocos2dxGLSurfaceView.java
将其更改为下方,其中myActivity
是cocos2dActicity
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:
答案 1 :(得分:2)
要处理后退按钮,您需要重新定义活动的onBackPressed()
方法,而不是这两种方法。
答案 2 :(得分:1)
你启用了触控功能吗?如果没有那么请启用它并希望,它会解决您的问题。
我假设你的游戏画面中有这个按钮。
答案 3 :(得分:1)
只是你的app实现forKeyDown的覆盖方法,
@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);
}
答案 4 :(得分:1)