我使用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)
我希望速度保持不变,直到我决定更改它,然后通过在更新功能中添加代码来实现。
所以我的问题是如何为所有衍生的精灵提供恒定的速度?
答案 0 :(得分:2)
像这样命名你的精灵:
enemy1.name = "enemy1"
然后按名称枚举节点,如下所示:
self.enumerateChildNodesWithName("enemy1") { node, stop in
//do your stuff here
}
修改强>
根据您的评论...您可以将节点命名为创建它们的位置。就在您将它们添加到场景之前。您应该枚举节点的位置取决于您想要实现的目标。如果你想在触摸时改变它们的速度,那么在touchesBegan中进行。如果要在每个帧中执行相同的任务,则可以在update方法中执行此操作。