Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 跟踪节点行中的第一个节点_Ios_Swift_Sprite Kit - Fatal编程技术网

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

Ios 跟踪节点行中的第一个节点,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我已经将我的游戏设置为从底部重复添加相同的节点,并使用不同的纹理向上移动到屏幕顶部。我需要一种方法来跟踪始终位于这一行节点前面的节点。因此,如果原始的第一个节点被删除,它后面的那个节点将取代它作为第一个节点,我可以跟踪它。这是我用来创建节点行的代码。任何帮助都将不胜感激 编辑:我试着制作一个SKNode并将其放置在球的上方以检查其名称,但它只返回nil class GameScene: SKScene { var aboveNode = SKNode() override func d

我已经将我的游戏设置为从底部重复添加相同的节点,并使用不同的纹理向上移动到屏幕顶部。我需要一种方法来跟踪始终位于这一行节点前面的节点。因此,如果原始的第一个节点被删除,它后面的那个节点将取代它作为第一个节点,我可以跟踪它。这是我用来创建节点行的代码。任何帮助都将不胜感激

编辑:我试着制作一个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)

    }
}

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

谢谢您的建议,但我无法这样做,因为这会干扰其他一些代码。我在我的问题中添加了一些我尝试过的东西,也许你会知道答案