我正在尝试使用 Ray Wenderlich 所著的 2D iOS & tvOS Games 书中的方法制作无尽的背景,并且我的游戏崩溃,原因是“尝试添加已经有父级的 SKNode”,因为子级已经开启场景和循环尝试再次添加它,但我不知道如何修复它。
谢谢!
func backgroundNode() -> SKSpriteNode {
// 1
let backgroundNode = SKSpriteNode()
backgroundNode.anchorPoint = CGPoint.zero
backgroundNode.name = "background"
// 2
background1.anchorPoint = CGPoint.zero
background1.size = self.frame.size
background1.position = CGPoint(x: 0, y: 0)
backgroundNode.addChild(background1)
// 3
background2.anchorPoint = CGPoint.zero
background1.size = self.frame.size
background2.position =
CGPoint(x: background1.size.width, y: 0)
backgroundNode.addChild(background2)
// 4
backgroundNode.size = CGSize(
width: background1.size.width + background2.size.width,
height: background1.size.height)
return backgroundNode
}
for i in 0...1 {
let background = backgroundNode()
background.anchorPoint = CGPointZero
background.position =
CGPoint(x: CGFloat(i)*background.size.width, y: 0)
background.name = "background"
addChild(background)
}
最佳答案
您循环了 for 循环两次,因此您添加了同一个子项两次。
将 for 循环的第一行更改为:for i in 0..<1 {
使用 for i in x...y
时您从 x 开始,一直到并包括 y。
关于ios - 无尽的背景 Sprite 套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752416/