我有一个节点,我想通过随机值移动,做一些事情,然后再移动另一个随机值。这是我的代码:
var randomValues = [250, 300, 90, 130]
var randomSpace = CGFloat(arc4random_uniform(UInt32(randomValues.count)))
var move = SKAction.moveByX(randomSpace, y: 0, duration: 2)
myNode.runAction(SKAction.repeatActionForever(SKAction.sequence([move, doSomething])))
当我键入一个固定的CGFloat值时,它工作正常,但它已经固定(显然),但是当我告诉它移动randomSpace
时它不会移动,它只是将所有动作放在同一个地方。
我怎样才能让它每次都以随机值移动?
答案 0 :(得分:0)
这会创建一个0到3范围内的值,因此移动不会到达同一位置,但它们非常接近,所以您可能没有注意到变化:
var randomSpace = CGFloat(arc4random_uniform(UInt32(randomValues.count)))
我认为你真正想要做的是生成随机索引,然后使用随机索引来获取randomValues之一:
var randomIndex = CGFloat(arc4random_uniform(UInt32(randomValues.count)))
var randomSpace = randomValues[randomIndex]