SpriteKit - 随机运动

时间:2014-12-13 14:09:02

标签: random sprite-kit skaction

我有一个节点,我想通过随机值移动,做一些事情,然后再移动另一个随机值。这是我的代码:

    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时它不会移动,它只是将所有动作放在同一个地方。

我怎样才能让它每次都以随机值移动?

1 个答案:

答案 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]