Poi*_*pps 0 arrays arc4random ios sprite-kit swift
我正在使用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)]
Run Code Online (Sandbox Code Playgroud)
我用这个函数生成一个随机数:
func randomNumber(maximum: UInt32) -> Int {
var randomNumber = arc4random_uniform(maximum)
while previousNumber == randomNumber {
randomNumber = arc4random_uniform(maximum)
}
previousNumber = randomNumber
return Int(randomNumber)
}
Run Code Online (Sandbox Code Playgroud)
我用它来根据生成的随机数移动对象:
let greenEasy = randomNumberNew(9)
let moveSelector = SKAction.moveTo(easyArray[greenEasy], duration: 0)
selector.runAction(moveSelector)
Run Code Online (Sandbox Code Playgroud)
我在网上做了一些阅读,发现"While"条件应该使得相同的随机数连续两次生成.但它仍然会发生.
任何人都可以帮助我如何使它,所以我没有连续两次获得相同的数字?
下面的代码不会随机输出相同的数字.
var currentNo: UInt32 = 0
func randomNumber(maximum: UInt32) -> Int {
var randomNumber: UInt32
do {
randomNumber = (arc4random_uniform(maximum))
}while currentNo == randomNumber
currentNo = randomNumber
return Int(randomNumber)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |