如何暂停我的 Java 程序 2 秒

新手上路,请多包涵

我是 Java 的新手,正在制作一个小游戏来练习。

 if (doAllFaceUpCardsMatch == false) {
        //run pause here//
        concentration.flipAllCardsFaceDown();
} else {
        concentration.makeAllFaceUpCardsInvisible();
}

我想在此之前暂停游戏两秒钟

concentration.flipAllCardsFaceDown();

我将如何暂停它?

原文由 Ethanph89 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

您可以使用:

  Thread.sleep(2000);

或者

java.util.concurrent.TimeUnit.SECONDS.sleep(2);

请注意,这两种方法都会抛出 InterruptedException ,这是一个已检查的异常,因此您必须捕获它或在方法中声明。

编辑:捕获异常后,您的代码将如下所示:

 if (doAllFaceUpCardsMatch == false) {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        concentration.flipAllCardsFaceDown();
} else {
        concentration.makeAllFaceUpCardsInvisible();
}

由于您是新手,我建议您在熟悉 Java 后学习如何进行异常处理。

原文由 Ashish Gupta 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于那些只想快速破解而无需带入图书馆的人……

 public class Timing {
    public static void main(String[] args) {
            int delay = 1000; // number of milliseconds to sleep

            long start = System.currentTimeMillis();
            while(start >= System.currentTimeMillis() - delay); // do nothing

            System.out.println("Time Slept: " + Long.toString(System.currentTimeMillis() - start));
    }
}

对于高精度 60fps 游戏,这可能不是您想要的,但也许有些人会发现它有用。

原文由 Scotty Stephens 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题