package com.rpsg.rpg.controller; import com.rpsg.gdxQuery.$; import com.rpsg.gdxQuery.GdxQuery; import com.rpsg.rpg.controller.PostController.Status; import com.rpsg.rpg.core.Game; import com.rpsg.rpg.core.Path; import com.rpsg.rpg.core.Views; import com.rpsg.rpg.ui.view.View; import com.rpsg.rpg.ui.widget.Button; import com.rpsg.rpg.util.Timer; import script.ui.view.MenuView; /** * GDX-RPG 菜单管理器<br> * 负责统一的游戏菜单创建、销毁等工作 */ public class GameMenuController { View menu; GdxQuery menuButton; public GameMenuController() { //创建stage菜单 menuButton = $.add(new Button(Path.IMAGE_MENU_GLOBAL + "btn_menu.png")) .size(60, 60).position(Game.STAGE_WIDTH - 90, 30).click(this::show).to(Game.view.stage); new MenuView(); } /**显示菜单*/ public void show() { if(menu != null) return; menu = new MenuView(); menu.create(); Views.addView(menu); Game.view.map.post.setStatus(Status.menu, false); Game.view.stage.unfocusAll(); menuButton.cleanActions().fadeOut(.15f); //暂停游戏计时 Timer.pause(); } /**关闭菜单*/ public void hide() { menu.remove(); menu = null; Game.view.map.post.setStatus(Status.normal, false); menuButton.cleanActions().fadeIn(.15f); //恢复游戏计时 Timer.resume(); } public boolean visible() { return menu != null; } public void dispose() { hide(); } }