我的遊戲有3個狀態,一個運行狀態,一個暫停狀態和一個遊戲。所有3個由整數變量gameState
監控。當按下暫停按鈕時,狀態應該切換到1(暫停)。當我在運行狀態下單擊按鈕時,它一切正常,但如果我在gameOver狀態下按下它,它會忽略在我的渲染方法中設置的條件。LibGDX渲染方法沒有正確更新?
if(gameState == 1)
sb.draw(pausemenu, cam.position.x - 315,cam.viewportHeight/2 - 625/2, 625, 625);
table.setPosition(cam.position.x, 560);
if(gameState == 2){
sb.draw(gameover, cam.position.x - gameover.getWidth()/2 - 85 , cam.viewportHeight/2 - gameover.getHeight()/2, 600, 500);
highScoreFont.draw(sb, "Highscore: " + highScore, cam.position.x - highScoreFont.getScaleX()/2 - 250 , cam.viewportHeight - 425, 500, Align.center, true);
coinsFont.draw(sb, coins, cam.position.x - 201, cam.viewportHeight - 590, 500, Align.center, false);
sb.draw(coin, cam.position.x - layout.width/2 - 51, cam.viewportHeight - 660, 90, 90);
restartButton.setPosition(cam.position.x - restartButton.getWidth()/2, 525);
}
當我按下按鈕,播放聲音,像它應該,應該是處於暫停狀態的按鈕顯示了罰款,但暫停菜單不繪製和GAMEOVER一個不dissapearing 。我錯過了什麼?這就像渲染方法停止檢查後,如果它已被更改爲2
編輯gameState
發生了變化: 更新方法:
if(gameState == 0 && tableVisible){
table.setVisible(false);
pauseButton.setVisible(true);
tableVisible = false;
restartVisible = false;
}
else if(gameState == 2 && !restartVisible) {
restartButton.setVisible(true);
restartVisible = true;
layout.setText(coinsFont, getCoins() + "");
}
else if(gameState == 1) {
if(restartVisible) {
restartButton.setVisible(false);
}
pauseButton.setVisible(false);
if(!tableVisible) {
table.setVisible(true);
tableVisible = true;
}
}
您是否可以發佈您的按鈕點擊代碼,因爲所顯示的代碼無助於我們診斷您的問題? – dfour
暫停按鈕只是播放一個聲音使得gameState = 1 – vladutelu
發佈的代碼看起來很好,錯誤必須在其他地方。你在其他地方檢查gameState嗎? – dfour