我设置了我的游戏,让从底部重复添加相同的节点,使用不同的纹理移动到屏幕顶部。我需要一种方法来跟踪节点总是引导这一行节点。因此,如果删除原始的第一个节点,那么它背后的那个节点将作为第一个节点,并且我能够跟踪它。这是我用来创建节点行的代码。任何帮助,将不胜感激。
编辑:我尝试制作一个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)
}
}
答案 0 :(得分:0)
根据游戏的其他部分的工作方式,您可以对其进行设置,以便每个后续节点都是之前节点的子节点。这样,子节点将与其父节点一起移动。想象一下,以这种方式设置的垂直堆栈节点,每个节点高50px。每个节点都有一个[0,50]的本地位置,以将其置于其父级之上。如果删除底部节点并将其子节点添加回场景,则所有后代节点将显示为已向下移动,因为它们的位置相对于其父节点。