如何使用arc4random从数组中select一个随机的SKShapeNode?

我正在尝试使用sprite工具包和swift来制作我的第一个应用程序。 我创build了一个数组并填充了两个形状节点(如下所示。

//name the properties for enemy 1 enemy1 = SKShapeNode (rectOfSize: CGSize(width: rectWidth/10, height: rectHeight/10)) enemy1.position = first enemy1.fillColor = UIColor.blackColor() enemy1.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: rectWidth, height: rectHeight)) enemy1.physicsBody?.dynamic = true enemy1.physicsBody?.affectedByGravity = false //name the properties for enemy 2 enemy2 = SKShapeNode (rectOfSize: CGSize(width: rectWidth/10, height: rectHeight/10)) enemy2.position = second enemy2.fillColor = UIColor.blackColor() enemy2.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: rectWidth, height: rectHeight)) enemy2.physicsBody?.dynamic = true enemy2.physicsBody?.affectedByGravity = false //populate the arrays arrayOfEnemies1.addObject(enemy1) arrayOfEnemies1.addObject(enemy2) 

假设我想每两秒随机添加一个节点到场景中。 我知道使用arc4random,但我不知道如何做到这一点。 任何帮助将不胜感激。 谢谢!

你可以创build一个扩展,并得到一个随机的数组元素:

 extension Array { func randomElement() -> T { let index = Int(arc4random_uniform(UInt32(self.count))) return self[index] } } 

像那样:

 var randomElement = arrayOfEnemies1.randomElement()