如何在Java中随机发生事件?

时间:2015-03-19 06:34:24

标签: java random timer

所以我正在制作游戏,我希望用户能够打击犯罪。只有我不希望他们能够在一段时间内再次打击犯罪,最多延迟10秒。我知道我可以以某种方式使用Math.Random(),但是我在这种情况下无法弄清楚如何使用它。

为了澄清,我想要一个标签和两个按钮,表示是或否,在随机的一段时间后最多可见20秒。有人可以解释如何做到这一点,或者是否有更好的方法来做到这一点?

提前致谢。

2 个答案:

答案 0 :(得分:0)

基本上,在完成“战斗”后,您将创建一个类似此long timestamp = System.currentTimeMillis()的时间戳。您可以立即禁用该按钮

然后你可以创建一个Random对象,然后调用它的下一个int方法,你想要创建这个10-20秒的范围,就像这样

Random r = new Random();
int span = r.nextInt(10);

此外,您只需数学上添加id毫秒

span += 1000;

然后你将创建一个在你的gui更新函数中调用的方法,或者一个单独的线程,它将检查currentMillis与你上次“战斗”的时间戳。

if(System.currentTimeMillis() >= span + timestamp) {
    // activate
}

答案 1 :(得分:0)

我会尝试创建一个新的Thread,它不会在随机的时间内休眠,然后再次启用该按钮。