我正在创造一个太空射击游戏。我创建了一个敌人节点。我想要做的是在屏幕的每个角落有4个节点。换句话说,我想同时生成同一节点的多个副本。当游戏加载时,我希望有四个节点,它们都是相同的。我怎么能这样做?
由于
答案 0 :(得分:0)
这是我用来生成一行4个空间入侵者的代码段。我重复使用相同的SKSpriteNode()变量,因为一旦将节点添加到场景中,就不再需要变量了:
for invaderPosition in 100.stride(to: 500, by: 120) {
invader = SKSpriteNode(texture: texturesA[0])
invader.position = CGPoint(x: CGFloat(invaderPosition), y: 200)
invader.xScale = 8
invader.yScale = 6
invader.color = SKColor.redColor()
invader.colorBlendFactor = 1.0
invader.name = "InvaderA"
invader.texture = texturesA[1]
invader.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(texturesA, timePerFrame: self.timePerMove)))
addChild(invader)
}
invader被定义为SKSpriteNode属性。 texturesA
只是SKTextures
的数组; timePerMove只是一个时间间隔,在此之后入侵者应该移动(在Update
中)并改变形状(纹理)。
var invader = SKSpriteNode()
var texturesA:[SKTexture] = []
let timePerMove: CFTimeInterval = 1.0
所以你可以做类似的事情,除了入侵者的位置是4个角而不是一行。
答案 1 :(得分:0)
只需使用复制命令
即可let newNode = originalNode.copy() as! SKSpriteNode;