如何根据当前屏幕或状态启用和禁用代码行?

时间:2019-08-18 21:15:19

标签: java eclipse graphics2d

我的游戏中有三个屏幕:帮助,菜单和游戏本身。

在菜单状态下,有两个按钮可以正常工作,直到按下帮助按钮为止。按下帮助按钮并转到帮助屏幕后,应该显示菜单屏幕的后退按钮不起作用。

我发现注释handler.getMouseManager().setUIManger(uiManager);可使按钮按预期工作。

如果我在菜单屏幕上,如何使此行有效?

菜单状态(屏幕脚本)

public MenuState(Handler handler) {

    super(handler);

    uiManager = new UIManager(handler);

    handler.getMouseManager().setUIManger(uiManager);

    uiManager.addObject(new UIImageButton(250, 200, 168, 64, assets.btn_start, new ClickListener() {

        @Override
        public void onClick() {

            handler.getMouseManager().setUIManger(null);
            State.setState(handler.getGame().gameState);

        }

    }));

    uiManager.addObject(new UIImageButton(250, 270, 168, 64, assets.btn_help, new ClickListener() {

        @Override
        public void onClick() {

            handler.getMouseManager().setUIManger(null);

            State.setState(handler.getGame().helpState);

        }
    }));
}

@Override
public void tick() {

    uiManager.tick();

    System.out.println(State.getState());

}

@Override
public void render(Graphics g) {

    g.setColor(Color.CYAN);
    g.fillRect(0, 0, 700, 700);

    uiManager.render(g);

}

}

0 个答案:

没有答案