Swift 2:给出所有精灵的方法产生了速度的变化

时间:2016-03-28 11:41:02

标签: swift sprite-kit

我使用NSTimer每4秒产生一个新的精灵。这是精灵代码:

    enemy1 = SKSpriteNode(texture: enemyTexture)
    enemy1.position = CGPoint(x: CGRectGetMidX(self.frame) - 300, y: CGRectGetMidY(self.frame) - 300)
    enemy1.physicsBody = SKPhysicsBody(texture: enemyTexture, size: enemyTexture.size())
    enemy1.physicsBody!.affectedByGravity = false
    enemy1.physicsBody!.allowsRotation = false
    enemy1.setScale(0.4)
    self.addChild(enemy1)

我正在寻找一种方法,在我想要的时候给所有的敌人1精灵这样的速度:

   enemy1.physicsBody!.velocity = CGVectorMake(70, 0)

我希望速度保持不变,直到我决定更改它,然后通过在更新功能中添加代码来实现。

所以我的问题是如何为所有衍生的精灵提供恒定的速度?

1 个答案:

答案 0 :(得分:2)

像这样命名你的精灵:

enemy1.name = "enemy1"

然后按名称枚举节点,如下所示:

self.enumerateChildNodesWithName("enemy1") { node, stop in

     //do your stuff here  
}

修改

根据您的评论...您可以将节点命名为创建它们的位置。就在您将它们添加到场景之前。您应该枚举节点的位置取决于您想要实现的目标。如果你想在触摸时改变它们的速度,那么在touchesBegan中进行。如果要在每个帧中执行相同的任务,则可以在update方法中执行此操作。