在计时器中调用函数

时间:2019-02-25 15:33:48

标签: swift sprite-kit

我有一些代码可以通过在顶部生成敌人并在底部删除它们来动画动画动画。这很好,但是所需要做的只是通过调用函数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()



        }
    }
}

0 个答案:

没有答案