【发布时间】:2015-03-05 14:56:32
【问题描述】:
我正在使用 Swift 和 SpriteKit 制作游戏,我根据数组将对象移动到随机位置。
由CGPoints组成的数组:
let easyArray = [CGPointMake(0,0), CGPointMake(126.6,0), CGPointMake(253.4,0), CGPointMake(0,197.5), CGPointMake(126.7,197.5), CGPointMake(253.4,197.5), CGPointMake(0,395), CGPointMake(126.7,395), CGPointMake(253.4,395)]
我用这个函数来生成一个随机数:
func randomNumber(maximum: UInt32) -> Int {
var randomNumber = arc4random_uniform(maximum)
while previousNumber == randomNumber {
randomNumber = arc4random_uniform(maximum)
}
previousNumber = randomNumber
return Int(randomNumber)
}
我使用它根据生成的随机数移动对象:
let greenEasy = randomNumberNew(9)
let moveSelector = SKAction.moveTo(easyArray[greenEasy], duration: 0)
selector.runAction(moveSelector)
我在网上做了一些阅读,发现“While”条件应该使它不会连续生成两次相同的随机数。但它仍然会发生。
谁能帮我弄一下,这样我就不会连续两次得到相同的数字了?
【问题讨论】:
-
您可以使用可变数组,将项目放在最后一个位置的随机项目上,然后调用 randomNumNew 最大值为1。
-
我明白你在说什么,但你能帮我写代码吗?我是一个快速编程的菜鸟。如果您能提供一个直接代码解决方案,那就太棒了。
标签: ios arrays swift sprite-kit arc4random