0

我正在使用 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);


}
4

2 回答 2

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

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

于 2013-06-25T07:10:40.030 回答
0

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

于 2013-06-24T20:30:49.743 回答