libgdx游戏当用户点击暂停图标时如何显示暂停屏幕

lak*_*man 1 android libgdx

在libgdx中,当用户点击暂停时如何显示暂停屏幕,它应该是当前屏幕上的图层,当用户点击恢复时它应该关闭屏幕如何在libgdx中实现它.

Mat*_*ann 5

我不喜欢这里使用原生Android View的建议,这可以在libgdx本身内部完成.

我会有一些变量来定义游戏的当前状态.如果按下暂停按钮,或者Android暂停游戏(例如,如果用户按下主页按钮),则此变量应该获得暂停值.然后在render()方法中,如果此变量的值为pause,则绘制一些暂停屏幕.

可以通过多种方式绘制此屏幕.如果您使用舞台,您有两个很好的选择:

  1. 如果暂停,除了游戏阶段之外,在绘制游戏阶段后绘制带有暂停项目的圣人.然后它将在游戏的顶部.

  2. 您可以创建一些Window actor,并向其添加pause-items.然后当游戏暂停时,您可以添加它/使其在您的舞台中可见.

一些示例代码:

public class GameScreen implements Screen {

    private Stage mystage;

    public static final int GAME_RUNNING = 0;
    public static final int GAME_PAUSED = 0;

    private int gamestatus;

    // ...

    public void render(float deltaTime) {
        // draw game normally, probably shouldn't update positions etc. if 
        // the game is paused..

        if (pausebutton is pressed) {
            pauseGame();
        }

        if (gamestatus == GAME_PAUSED) {
            // draw pause screen
        }

    }   
    public void pauseGame() {
        gamestatus = GAME_PAUSED;
    }

    // this is called by android 
    public void pause() {
        pauseGame();
    }
}
Run Code Online (Sandbox Code Playgroud)

不是一个完全有效的例子,但显示了基本逻辑.