Swift 在后台生成的节点,我可以';不要把他们带到前线

Swift 在后台生成的节点,我可以';不要把他们带到前线,swift,background,sprite-kit,repeater,nodes,Swift,Background,Sprite Kit,Repeater,Nodes,我用的是重复动作。当应用程序第一次加载时,精灵确实会在背景前生成,因此您可以看到它们。但是当你从记分场景重新启动游戏时,节点会在后台生成,我无法让它们出现在前面。有人知道我怎么解决这个问题吗 override init(size: CGSize) { super.init(size: size) //Background for var index = 0; index < 2; ++index { let bg = SKSpriteNod

我用的是重复动作。当应用程序第一次加载时,精灵确实会在背景前生成,因此您可以看到它们。但是当你从记分场景重新启动游戏时,节点会在后台生成,我无法让它们出现在前面。有人知道我怎么解决这个问题吗

    override init(size: CGSize) {
    super.init(size: size)

    //Background
    for var index = 0; index < 2; ++index {
        let bg = SKSpriteNode(imageNamed: "background")
        bg.position = CGPoint(x: -100, y: index * Int(bg.size.height))
        bg.anchorPoint = CGPointZero
        bg.name = "background"
        self.addChild(bg)
    }
     runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(callEnemy), SKAction.waitForDuration(1.0)]))) 

为了使节点位于背景之上,您需要更改它们的
zPosition
。如果您指定:

bg.zPosition = 0


前景现在将位于背景之上。zPosition指定每个节点在z轴上的位置

这可能就是你要找的东西。谢谢你,它这么有效,我在过去的三天里一直在努力让它发挥作用,谢谢,没问题,很高兴它成功了!只要接受我的答案/+1,让其他人知道它是有效的@Vince
bg.zPosition = 0
foreground.zPosition = 1