【问题标题】:How to go on game play screen direct after game over in libgdx?如何在libgdx中游戏结束后直接进入游戏画面?
【发布时间】:2013-06-24 18:05:01
【问题描述】:

我正在使用 Libgdx 框架制作赛车游戏,其中当游戏结束时,游戏结束屏幕上有一个重试按钮,然后单击该按钮转到我想重新启动游戏的游戏屏幕,但它不会发生,游戏结束时显示在游戏画面上的画面是最后一个画面。

private void updateGameOver() {

    if(Gdx.input.justTouched()){
        guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
        if(OverlapTester.pointInRectangle(resumeButtonBounds, touchPoint.x, touchPoint.y)){
            state = GAME_RUNNING;
            return;
        }

}

}
private void presentGameOver() {

    spriteBatch.draw(Assets.retryButtonRegion, 480 / 2 - 183 / 2, 800 / 2 - 185, 183, 90);


}

【问题讨论】:

    标签: libgdx


    【解决方案1】:

    当您将状态设置为运行所有游戏元素的实例时,例如汽车,在您的情况下,不会重置。

    你需要调用游戏画面的构造函数

    private void updateGameOver() {
    if(Gdx.input.justTouched()){
        guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
        if(OverlapTester.pointInRectangle(resumeButtonBounds, touchPoint.x, touchPoint.y)){
            game.setscreen(new GameScreen(game,batcher));
            return;
        }
    

    这应该可以解决您的问题。

    【讨论】:

    • 感谢 Kumar Saurabh 的回复。根据您的说法,我已经更改了我的代码及其工作方式。
    【解决方案2】:

    将 Clicklistener 添加到 Button 并在那里实现您的方法。看看Sceen2D wiki
    否则,请检查您是否在那里获得了价值。因此,在您的 If 语句中添加一个记录器并检查您是否收到日志。 (Gdx.app.log("",""))

    【讨论】:

    • 谢谢你的回答,但我的问题已经解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    相关资源
    最近更新 更多