首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节奏游戏Swift 2中的随机化圆

节奏游戏Swift 2中的随机化圆
EN

Stack Overflow用户
提问于 2017-05-03 02:28:01
回答 2查看 101关注 0票数 0

我有一个游戏,当圆圈落入目标时,你可以点击它们,但现在我有它,所以它们都是从左到右,以此类推。我希望它们以随机的顺序落下,但我不知道是怎么回事。下面是我的代码:

代码语言:javascript
运行
复制
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!)

}
EN

回答 2

Stack Overflow用户

发布于 2017-05-03 02:44:44

要获得随机数,可以使用arc4random-function之一,在本例中

代码语言:javascript
运行
复制
let directionLeft = arc4random()%2 == 0

其他备注:没有必要将标志与true进行比较。

这个答案How does one generate a random number in Apple's Swift language?告诉你更多关于随机数的内容。

票数 0
EN

Stack Overflow用户

发布于 2017-05-03 02:40:35

代码语言:javascript
运行
复制
// 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!)
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43744814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档