У меня есть код, который оживляет падающее движение по экрану, вызывая врагов наверху и удаляя их внизу.Это хорошо, однако все, что нужно, это распределить время появления врагов, вызвав функцию spawnEnemy ().Как бы я поступил так?Вот моя функция, которая заставляет их перемещаться сверху вниз, однако куча из них появляется одновременно, я хочу, чтобы один появлялся каждые 2 секунды.
func random() -> CGFloat {
return CGFloat(Float(arc4random()) / 0xFFFFFFFF)
}
func random(min: CGFloat, max: CGFloat) -> CGFloat {
return random() * (max - min) + min
}
func spawnEnemy() {
let enemy = SKSpriteNode(imageNamed: "arrow1")
enemy.name = "arrow1"
enemy.position = CGPoint(x: frame.size.width * random(min: -0.5, max: 0.5), y: frame.size.height * random(min: 0.6, max: 0.7))
addChild(enemy)
enemy.run(
SKAction.moveBy(x: 0.0 , y: -size.height - enemy.size.height,
duration: TimeInterval(random(min: 4, max: 4))))
self.enumerateChildNodes(withName: "arrow1") { (node:SKNode, nil) in
if node.position.y < -550 || node.position.y > self.size.height + 550 {
node.removeFromParent()
}
}
}