如何在libgdx游戏结束后直接进入游戏界面?

时间:2013-06-24 18:05:01

标签: libgdx

我正在制作一个使用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);


}

2 个答案:

答案 0 :(得分:1)

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

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

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;
    }

这可以解决您的问题。

答案 1 :(得分:0)

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