如何使程序中的随机数随着时间的推移而不断变化(即每次我想使用它时都成为范围内的新随机数)?
我很困惑。我已经阅读了 20 多篇关于如何用这种语言生成随机数的不同帖子和文章(我对此还很陌生),但我似乎无法让它发挥作用。
我基本上是想从 1.0-3.0 中随机获得一个双精度值。我可以很容易地做到这一点,但是一旦它选择了该数字,它就不会改变。这是我使用的代码:
var randomNumber:Double = (Double(arc4random() % 3) + 1);
然后我用它作为该行的值:
SKAction.waitForDuration(randomNumber)
每次我运行这个我想再次更改数字,但是一旦程序启动它就会继续相同的数字(每次我重置程序时都会不同)
我知道如何生成该号码,但我似乎找不到任何有关更新它的信息!
我尝试过添加
randomNumber = (Double(arc4random() % 3) + 1);
进入代码中将运行多次的地方,但它仍然给我同样的东西。
我对 C++ 非常熟悉,所以如果你想解释一些东西,你可以参考它的风格,我很可能会理解。
您需要的是一个只读计算属性,每次您尝试访问它时都会返回一个新的随机数:
var randomNumber: Double {
return Double(arc4random_uniform(3).successor())
}
print(randomNumber) // 2.0
print(randomNumber) // 2.0
print(randomNumber) // 1.0
print(randomNumber) // 3.0
print(randomNumber) // 3.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)