我已经在我的游戏中实现了一个加电功能,我希望它有10%的几率在杀死僵尸时应用于玩家。我每次玩家子弹击中僵尸时都试过使用这个代码,但它确实不起作用。
double rand = Math.random() * 10 + 1;
if(rand == 1){
power.setShrink(true);
}
我知道上电是有效的,因为如果我把它设置在if语句之外,玩家就会缩水。
我怎样才能让僵尸被杀的时候有10%的几率使用该玩家?
答案 0 :(得分:2)
双打是浮点数。在您的情况下,它可以是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);
}
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以在类似的逻辑中使用Random.nextInt(10)
。
您当前的代码失败了,因为double
很少会完全1
。