我在我的游戏中实现了一个能量提升,我希望它在杀死僵尸时有 10% 的机会应用到玩家身上。每当玩家的子弹击中僵尸时,我都尝试使用此代码,但它并没有真正起作用。
double rand = Math.random() * 10 + 1;
if(rand == 1){
power.setShrink(true);
}
我知道 Prop 会起作用,因为如果我将它设置在 if 语句之外,播放器就会缩小。
我怎样才能让它在僵尸被杀死时有 10% 的几率应用到玩家身上?
最佳答案
double 是 float 。在您的情况下,它可以是 1 到 11 之间的任何数字,最高可达 53 位精度的二进制数字。所以它不仅可以是 1,还可以是 1.01、1.02 等。因此,它恰好为 1 的几率可以忽略不计。
生成随机整数时,最好使用 Random.nextInt
。
Random r = new Random(); //only do this once
if(r.nextInt(10) == 0){
power.setShrink(true);
}
关于java - 当事情发生时随机化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263032/