我正在制作游戏而且我一直试图产生随机动作。这是我的代码。
let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))
最小值和最大值无效请求帮助。
答案 0 :(得分:3)
与.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
介于0到999之间吗?现在当你将它除以1000时,它变成一个小于1的数字,即0~0.999。然后将此数字添加到3,结果将变为3到4之间的随机数,这正是您想要的。
如果你想要一个更精确的双倍,你可以生成0到9999之间的数字并除以10000.你知道我的意思!
答案 1 :(得分:0)
@Ethan Marcus
试试这个
let minValue = 3
let maxValue = 4
let actualDuration = NSTimeInterval(minValue + (random() % (maxValue - minValue)))