我正在制作游戏,并且一直在尝试制作随机移动。这是我的代码。最小和最大功能不工作Swift
let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))
最小和最大不工作,请帮助。
我正在制作游戏,并且一直在尝试制作随机移动。这是我的代码。最小和最大功能不工作Swift
let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))
最小和最大不工作,请帮助。
与.NET Framework或JDK不同,没有一个函数需要min
和max
参数来生成一个随机数。 :(
如果你想生成3和4之间的随机数,你应该使用arc4random_uniform
函数生成0到999,然后再之间的数字除以1000,这个数字并加3:
let randomNumber = Double(arc4random_uniform(1000))
let actualDuration = CGFloat(randomNumber/1000 + 3)
让我解释一下这是如何工作的。
randomNumber
999是介于0和好吗?现在,当你除以1000,它变得比1,即0〜0.999少一个数字,你加这个号码3,结果变成3到4之间的随机数,这就是你想要的。
如果您想要更精确的双精度,您可以生成一个介于0和9999之间的数字并将其除以10000.您明白我的意思了!
非常感谢您,如果您在Saoods上发布3和4 CGFLOAT后,两种版本都可以正常工作 –
@Ethan马库斯
尝试这样
let minValue = 3
let maxValue = 4
let actualDuration = NSTimeInterval(minValue + (random() % (maxValue - minValue)))
我不认为您的代码可以生成3到4之间的随机数 – Sweeper
它应该是'分钟:',而不是'分钟():'? –
你可以发布你的随机方法定义吗? –