一次在屏幕上有两个相同的节点Swift SpriteKit

时间:2016-04-20 21:45:40

标签: ios swift sprite-kit

我正在创造一个太空射击游戏。我创建了一个敌人节点。我想要做的是在屏幕的每个角落有4个节点。换句话说,我想同时生成同一节点的多个副本。当游戏加载时,我希望有四个节点,它们都是相同的。我怎么能这样做?

由于

2 个答案:

答案 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;