我有一个游戏,当圆圈落入目标时,你可以点击它们,但现在我有它,所以它们都是从左到右,以此类推。我希望它们以随机的顺序落下,但我不知道是怎么回事。下面是我的代码:
var alternator = 0
var flag:Bool = true
var fallTimer:NSTimer?
func fallCircleWrapper() {
if (flag == true) {
self.alternator += 1
} else {
self.alternator -= 1
}
if (self.alternator == 0) {
flag = true
} else if (self.alternator == 5) {
flag = false
}
self.hitAreaArray[self.alternator].emitNote(self.texture!)
}
发布于 2017-05-03 02:44:44
要获得随机数,可以使用arc4random-function之一,在本例中
let directionLeft = arc4random()%2 == 0
其他备注:没有必要将标志与true进行比较。
这个答案How does one generate a random number in Apple's Swift language?告诉你更多关于随机数的内容。
发布于 2017-05-03 02:40:35
// import GameplayKit for it's random generator capabilities
import GameplayKit
// this expression generates an array of NSNumbers where the values
// are 0 to 4 - [0, 1, 2, 3, 4] but wrapped in NSNumbers
let circleIndexes = (0..<5).map { return NSNumber(value: $0) }
// uses a function in GameplayKit to shuffle the indexes in
// the circleIndexes array
let randomIndexes = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: circleIndexes) as! [Int]
func fallCircleWrapper() {
if (flag == true) {
self.alternator += 1
} else {
self.alternator -= 1
}
if (self.alternator == 0) {
flag = true
} else if (self.alternator == 5) {
flag = false
}
// Now we select the circle to drop by choosing
// the next item out of the list of randomized indexes
self.hitAreaArray[randomIndexes[self.alternator]].emitNote(self.texture!)
}
https://stackoverflow.com/questions/43744814
复制相似问题