因此,我正在製作一款使用Java的遊戲,並希望在用戶在菜單屏幕上按下「播放」後,使用計時器從遊戲屏幕上的3倒計時。我的計時器在Java中不能正確計數
這裏是我的代碼:
int seconds = 3;
private void countdown(Graphics g) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
if(seconds >= 0) {
System.out.println(seconds);
seconds--;
}
if(seconds == -1) {
timer.cancel();
}
}
};
timer.schedule(task, 1000, 1000);
}
我用倒計時在我比賽的抽籤方法在這裏:
public void draw(Graphics g) {
//background
g.setColor(Color.BLACK);
g.fillRect(0, 0, WIDTH, HEIGHT);
//count
countdown(g);
}
我使用控制檯打印的數字,但是我會改變這稍後使用drawString()在屏幕上繪製倒數。
在我的菜單屏幕上按下「play」後,我的遊戲屏幕上會暫停一秒,然後數字全部打印到控制檯。問題是在打印數字之間沒有第二個延遲,他們只是同時打印所有數字。任何幫助?
工作正常,我。請發佈[mcve]。 – shmosel
您是否使用繪圖方法並以秒爲單位遞減1秒? –
我只是做了'countdown()'方法,它以1秒爲間隔計數到0。我不明白'draw()'方法是如何與問題相關的。 – shmosel