因此,我正在制作一款使用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