2016-03-08 127 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