如何在Java游戏中实现计时器?

4

我希望有一个方法startTimer(30),其中的参数是倒计时的秒数。如何在Java中实现?


你希望这个方法具体做什么? - Adam
4个回答

4

除非这是从命令行(人们还会制作这样的游戏吗?)玩的游戏,否则Swing计时器似乎是一个显而易见的选择。 - Andrew Thompson

3

Java 5的做法可能是这样的:

void startTimer(int delaySeconds) {
  Executors.newSingleThreadScheduledExecutor().schedule(
    runnable,
    delaySeconds,
    TimeUnit.SECONDS);
}

runnable描述了你想要做的事情。例如:

Runnable runnable = new Runnable() {
  @Override public void run() {
    System.out.println("Hello, world!");
  }
}

2
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;

public class TimerDemo {
  Toolkit toolkit;

  Timer timer;

  public TimerDemo(int seconds) {
    toolkit = Toolkit.getDefaultToolkit();
    timer = new Timer();
    timer.schedule(new RemindTask(), seconds * 1000);
  }

  class RemindTask extends TimerTask {
    public void run() {
      System.out.println("Time's up!");
      toolkit.beep();
      System.exit(0); 
    }
  }

  public static void main(String args[]) {
    System.out.println("About to schedule task.");
    new TimerDemo(30);
    System.out.println("Task scheduled.");
  }
}  

有很多有用的链接。


0

在“Javascript是上帝”的帮助下,我做到了,在特定时间玩游戏的解决方案。

public static void main(String args[]) {
  boolean flag = true;
  while (flag) {
      new TimerDemo(30);
      game();
    }
}

注意到在 game() 函数中,标志变量会发生改变。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接