在升级到Swift 3(Xcode 8)之前,我的随机位置开始如下:
func randomStartPosition(range: Range<Int> = 45...(Int(self.frame.size.height)-45)) -> Int {
let min = range.startIndex
let max = range.endIndex
return Int(arc4random_uniform(UInt32(max - min))) + min }
转换后停止工作,因为它已更新为:
func randomSmallObjectsStartPosition(_ range: Range<Int> = 25...(Int(self.frame.size.height)-25)) -> Int {
let min = range.lowerBound
let max = range.upperBound
return Int(arc4random_uniform(UInt32(max - min))) + min }
这是因为我最终了解了GamePlayKit:
开始于:
import GameplayKit
然后你可以使用GamePlayKit轻松制作新的随机变量:
你可以在苹果网站上阅读,但基本上这会给你更多的点击率#34;在中间:
lazy var randomStartPosition = GKGaussianDistribution(randomSource: GKARC4RandomSource(), lowestValue: 0, highestValue:100)
这将循环通过随机值,直到它们全部被消耗,然后再次开始。
lazy var randomShuffle = GKShuffledDistribution(randomSource: GKARC4RandomSource(), lowestValue: 0, highestValue:100)
最后是完全随机的值生成器:
lazy var totallyRandom = GKRandomDistribution(lowestValue: 1, highestValue: 100)
如何使用的示例:
MyObject.position = CGPoint(x: self.frame.size.width + 20, y: CGFloat(totallyRandom.nextInt()) )
这会将我的物体从最右边的屏幕上移开,并将其放在Y轴上的一个完全随机的位置。