Java 游戏中的计时器

Java 游戏中的计时器,java,timer,Java,Timer,我正在尝试编写一个2D java游戏。像往常一样,我有init(),render(),update()方法。我想弄清楚的是,我想把计时器连接到对象上。例如,通电会在地图中随机生成,但它应该存在5秒。或者当用户点击“播放”按钮时,我想让他等待3秒钟,同时做背景工作(加载资源、创建场景等)。我的意思是我想让时间计数器在后台工作,同时我在游戏中正常工作。我如何实现这一点?任何帮助,即使是简单的想法都将不胜感激 编辑:我正在使用slick2D库和图形类来绘制屏幕。有几种方法可以“暂停”执行。这是两个:

我正在尝试编写一个2D java游戏。像往常一样,我有
init()
render()
update()
方法。我想弄清楚的是,我想把计时器连接到对象上。例如,通电会在地图中随机生成,但它应该存在5秒。或者当用户点击“播放”按钮时,我想让他等待3秒钟,同时做背景工作(加载资源、创建场景等)。我的意思是我想让时间计数器在后台工作,同时我在游戏中正常工作。我如何实现这一点?任何帮助,即使是简单的想法都将不胜感激

编辑:我正在使用slick2D库和图形类来绘制屏幕。

有几种方法可以“暂停”执行。这是两个:

  • 您可以从
    Robot
    类中使用
    delay(毫秒)
  • 或者静态方法
    Thread.sleep(毫秒)

如果您想使用计时器,有多种方法,如前所述,有:

线程。睡眠(毫)

或者我常用的另一种方法是创建一个新类,并使用while循环在其中创建计时器:

public class Timer implements Runnable {

    private long startTime, runTime;

    public Timer(long runTime){//set runtime
         this.runTime = runTime;
    }

    public void run(){
       startTime = System.currentTimeMillis();//gets system's current time in milliseconds
       while(System.currentTimeMillis() - startTime < runTime ){//loops until the current time - the start time is less then the specified run time. 
        //Runs this
       }
    }
}
公共类计时器实现可运行{
私有长启动时间,运行时;
公共计时器(长运行时){//设置运行时
this.runTime=运行时;
}
公开募捐{
startTime=System.currentTimeMillis();//获取系统的当前时间(毫秒)
而(System.currentTimeMillis()-startTime
要获得更好的答案,请提供更多信息。例如,您使用的GUI库是什么?您正在使用游戏引擎库吗?你是如何实现游戏循环的?问题是我不想暂停执行,我需要对游戏中出现的一些对象保持时间跟踪。这就是为什么当我使用时间计数器时游戏必须继续