2016-03-21 4 views
0

Я только начал разрабатывать игру с andEngine и теперь столкнулся с проблемой аппаратной кнопки меню в устройстве Android. То, что я хочу сделать, это вызвать метод «showMenu()», чтобы показать пользовательскую сцену меню, которую я сделал со следующим ниже кодом. Однако всякий раз, когда я нажимаю кнопку меню HW, вместо этого появляется список приложений. Как мне управлять вызовом метода с помощью кнопки меню? Я хотел бы услышать от вас!Невозможно вызвать метод, когда нажата кнопка меню 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; 
    } 

ответ

1

Имейте в виду, что многие устройства для Android не поставляются с кнопкой меню физического или сенсорного экрана. Кнопка на вашем устройстве, скорее всего, является кнопкой диспетчера задач, цель которой заключается в том, чтобы делать то, что вы описали (показать список запущенных/фоновых приложений).

Лучше всего избегать переопределения кнопки меню в играх или, по крайней мере, вы должны предоставить клиенту альтернативный экранный спрайт, чтобы действовать как кнопка меню.

 Смежные вопросы

  • Нет связанных вопросов^_^