单击 HW 菜单按钮时无法调用方法
Unable to call a method when HW menu button is clicked
我刚开始使用 andEngine 开发游戏,现在遇到 android 设备中硬件菜单按钮的问题。我想要做的是调用方法“showMenu()
”来显示我使用下面的代码制作的自定义菜单场景。但是,每当我点击 HW 菜单按钮时,都会显示应用程序列表而不是方法。如何设法通过菜单按钮调用方法?我很想听听你的消息!
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getAction() == KeyEvent.ACTION_DOWN && e.getKeyCode() == KeyEvent.KEYCODE_BACK) {
//if paused
if (isPaused) {
//use thread when tring to use detachself and detachChildren
getBaseActivity().runOnUpdateThread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < pauseBg.getChildCount(); i++) {
unregisterTouchArea((ButtonSprite) pauseBg.getChildByIndex(i));
}
pauseBg.detachChildren();
pauseBg.detachSelf();
}
});
isPaused = false;
isTouchEnabled = true;
return true;
} else {
return false;
}
} else if (e.getAction() == KeyEvent.ACTION_DOWN && e.getKeyCode() == KeyEvent.KEYCODE_MENU) {
//if not paused show menu
if (!isPaused) {
showMenu();
}
return true;
}
return false;
}
请记住,很多 android 设备没有物理或触摸屏菜单按钮。您设备上的按钮很可能是任务管理器按钮,其目的是完全按照您的描述进行操作(显示 running/background 应用程序列表)。
最好避免覆盖游戏中的菜单按钮,或者至少您应该为客户端提供一个替代的屏幕精灵作为菜单按钮。
我刚开始使用 andEngine 开发游戏,现在遇到 android 设备中硬件菜单按钮的问题。我想要做的是调用方法“showMenu()
”来显示我使用下面的代码制作的自定义菜单场景。但是,每当我点击 HW 菜单按钮时,都会显示应用程序列表而不是方法。如何设法通过菜单按钮调用方法?我很想听听你的消息!
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getAction() == KeyEvent.ACTION_DOWN && e.getKeyCode() == KeyEvent.KEYCODE_BACK) {
//if paused
if (isPaused) {
//use thread when tring to use detachself and detachChildren
getBaseActivity().runOnUpdateThread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < pauseBg.getChildCount(); i++) {
unregisterTouchArea((ButtonSprite) pauseBg.getChildByIndex(i));
}
pauseBg.detachChildren();
pauseBg.detachSelf();
}
});
isPaused = false;
isTouchEnabled = true;
return true;
} else {
return false;
}
} else if (e.getAction() == KeyEvent.ACTION_DOWN && e.getKeyCode() == KeyEvent.KEYCODE_MENU) {
//if not paused show menu
if (!isPaused) {
showMenu();
}
return true;
}
return false;
}
请记住,很多 android 设备没有物理或触摸屏菜单按钮。您设备上的按钮很可能是任务管理器按钮,其目的是完全按照您的描述进行操作(显示 running/background 应用程序列表)。
最好避免覆盖游戏中的菜单按钮,或者至少您应该为客户端提供一个替代的屏幕精灵作为菜单按钮。