2016-03-06 3 views
1

Я работаю над игрой, в которой у меня есть куча наложений и одна сцена, которая называется game.lua. Я хотел бы сделать это, когда я нажму кнопку «Назад» (кнопка на устройстве Android), игра будет, если есть наложение, закрыть оверлей, и если нет наложения (только game.lua scene), это покажет exitmenu.lua (простое всплывающее окно меню).Глобальная кнопка назад

function onKeyEvent(event) 
     if(event.keyName == "back") then 
      local CurrentScene = composer.getSceneName("current") 
      local CurrentOverlay = composer.getSceneName("overlay") 

      if CurrentScene == "Scenes.game" and CurrentOverlay == nil then 
       composer.showOverlay("Scenes.exitmenu", {isModal = true}) 
       return true      
      elseif CurrentOverlay ~= nil and CurrentOverlay ~= "Scenes.exitmenu" then 
       composer.hideOverlay("fade", 500) 
       return true 
      end 
     end 
end 
Runtime:addEventListener("key", onKeyEvent) 

Что происходит, когда я нажимаю кнопку назад во время наложения включен, функция скрывает накладку, а также показывает exitmenu.lua наложения. Я не знаю, что не так с моим кодом, любые советы высоко ценятся.

+0

Здесь на SO вы можете ответить (и принять) свой собственный вопрос вместо того, чтобы сделать редактирование. Таким образом, ваш вопрос удаляется из «неотвеченного» списка :) – hugomg

+0

О, не думал об этом! Спасибо, сэр. Сделаю! – FICHEKK

ответ

0

EDIT: Я исправил это! Мне нужно было добавить и event.phase == "down", что делает мою кнопку нажатием делать функцию только один раз. Это было исправление.

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