我正在制作一个使用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);
}
答案 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("","")
)