【问题标题】:Switch beetween Screen on LibGdx application在 LibGdx 应用程序的屏幕之间切换
【发布时间】:2016-01-30 15:55:57
【问题描述】:

我是 libgdx 的新手,这是我的第一个应用程序,但我遇到了屏幕切换问题。

我已经设置了这样的主类:

public class MyClass extends Game {
    MenuClass menuClass;
    ActionGame actionGame;


@Override
public void create() {
        menuClass = new MenuClass(this);
        actionGame = new ActionGame(this);
        setScreen(actionGame);
    }
}

ActionGame类的方法如下:

....
@Override
public void pause() {
    game.setScreen(game.menuClass);
}

@Override
public void resume() {
    this.show();
    this.render(Gdx.graphics.getDeltaTime());
}
....

menuClass.java 的方法是这样的,当点击播放按钮时:

....
@Override
public void resume() {
    game.actionGame.resume();
}
....

当我触摸播放按钮时,我希望 actionGame 类在动作渲染中返回,但渲染不会开始。 我曾尝试使用 setScreen,但这会重新启动我的屏幕,这不好。 帮助

谢谢

【问题讨论】:

  • 看到您的新问题,如果您能接受旧问题的答案,那就太好了。 (这导致了这个新问题)

标签: java android libgdx screen render


【解决方案1】:

您错误地使用了resume。当您的应用程序返回屏幕时,它总是被调用。你不应该自己在任何课程上致电resume()。当您的应用回到前台时,Libgdx 会调用它。

您应该在pause 方法中切换到菜单屏幕是正确的,因为游戏玩家希望游戏在应用离开屏幕时自动进入菜单或暂停屏幕。但是您不想在应用重新出现在屏幕上时自动切换回游戏。

resume 方法仅用于重新加载您在 pause 中卸载的内容(您可能不需要这样做),或重新启动音乐,或类似的事情。

您的播放按钮绝对不应该调用resume。它应该调用setScreen(actionGame);。您当前设计的任何resume 方法中都应该没有任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多