暂停游戏并添加闪烁文本Java

时间:2015-03-19 00:43:36

标签: java

我有这个循环

    while (true) {
        game.update();
        view.repaint();
        Thread.sleep(DELAY);
    }

在game.update中,游戏的各个组件的位置发生了变化,并且在视图上调用repaint()方法时会反映这些更新。视图扩展了JComponent并循环遍历游戏对象并调用它们的打印方法。

我想要做的是在游戏中有一个名为nextLevel的布尔值,如果它是真正的Flash文本在屏幕上让玩家通知他们他们将进入下一关。也许闪过4-5次。然后继续游戏。 这可能吗?我一直在玩Thead.Sleep(),但这似乎暂停了显示,在后台游戏仍在继续。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

也许您希望通过使用Timer对象来避免线程化。

这样的例子可能是

int flashTimer = 0;
if(nextLevel) {
   Timer timer = new Timer(1000, new ActionListener() {
   public void actionPerformed(ActionEvent e) {
       //flash something method here
       flashTimer++;
   }
   });
   timer.start();
}

然后检查flashTimer是否达到了您想要的号码,然后按timer.stop();停止计时器

这个想法在我看来有点简单。 1000值是传递的毫秒数,每1秒执行actionPerformed方法内的代码。

希望有所帮助