跟踪节点行中的第一个节点

时间:2015-09-03 23:36:17

标签: ios swift sprite-kit

我设置了我的游戏,让从底部重复添加相同的节点,使用不同的纹理移动到屏幕顶部。我需要一种方法来跟踪节点总是引导这一行节点。因此,如果删除原始的第一个节点,那么它背后的那个节点将作为第一个节点,并且我能够跟踪它。这是我用来创建节点行的代码。任何帮助,将不胜感激。

编辑:我尝试制作一个SKNode并将其放在球的上方以检查其名称,但它只返回nil。

class GameScene: SKScene {

var aboveNode = SKNode()
    override func didMoveToView(view: SKView) {

    var create = SKAction.runBlock({() in self.createBottomTargets()})
            var wait = SKAction.waitForDuration(2)
            var createAndWait = SKAction.repeatActionForever(SKAction.sequence([create, wait]))
            self.runAction(createAndWait, withKey: "firstBottom")

    }

override func update(currentTime: NSTimeInterval) {

println("\(aboveNode.name)")
}

     func createBottomTargets() {

            ball = SKSpriteNode(imageNamed: "blue1")

            ball.position = CGPoint(x: frame.size.width / 2, y: -50)

            ball.texture = textures[random]

            self.addChild(ball)

      let move = SKAction.moveByX(0, y: 1400, duration: 18)

            let remove = SKAction.removeFromParent()

            ball.runAction(SKAction.sequence([move, remove]))

        aboveNode.position = CGPoint(x: ball.position.x, y: ball.position.y + 163)

    }
}

1 个答案:

答案 0 :(得分:0)

根据游戏的其他部分的工作方式,您可以对其进行设置,以便每个后续节点都是之前节点的子节点。这样,子节点将与其父节点一起移动。想象一下,以这种方式设置的垂直堆栈节点,每个节点高50px。每个节点都有一个[0,50]的本地位置,以将其置于其父级之上。如果删除底部节点并将其子节点添加回场景,则所有后代节点将显示为已向下移动,因为它们的位置相对于其父节点。