2016-03-08 126 views
0

我正在制作游戏,并且一直在尝试制作随机移动。这是我的代码。最小和最大功能不工作Swift

let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0))) 

最小和最大不工作,请帮助。

+1

它应该是'分钟:',而不是'分钟():'? –

+0

你可以发布你的随机方法定义吗? –

回答

3

与.NET Framework或JDK不同,没有一个函数需要minmax参数来生成一个随机数。 :(

如果你想生成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.您明白我的意思了!

+0

非常感谢您,如果您在Saoods上发布3和4 CGFLOAT后,两种版本都可以正常工作 –

0

@Ethan马库斯

尝试这样

let minValue = 3 
let maxValue = 4 
    let actualDuration = NSTimeInterval(minValue + (random() % (maxValue - minValue))) 
+0

我不认为您的代码可以生成3到4之间的随机数 – Sweeper