SpriteKit:将 SKSpriteNode 添加到视图
SpriteKit: Add SKSpriteNodes To The View
我基本上是想在屏幕上添加一个SKSpriteNode,但我不知道错在哪里。所以我包括了我的三个 classes 参与这个问题的照片。我为所有背景内容创建了一个 class。我在那里使用函数 addChild()
将我的 56 个节点添加到视图中,但它们没有出现在屏幕上。理论上(对我来说)一切都应该有效。
希望你能帮我把节点添加到屏幕上!
编辑:更新了图片。
当你这样调用时:
GameScene().addChild(image)
你每次在 for
中创建本地 GameScene
对象,将 image
添加到这个对象,当你移动到循环的下一个迭代时,这个对象被销毁。事实上,在你的循环之后,没有人 GameScene
对象。
其次,您不需要在 hintergrund
对象中使用 var image = SKSpriteNode()
。您每次都将此引用设置为新对象。
你在代码中有交叉引用,试着做这样的事情:
class GameScene: SKScene {
...
override func didMoveToView(view: UIView) {
hintergrund.setBackgroundForScene(self, width: screenWidht)
}
}
class hintergrund {
...
class func setBackgroundForScene(gameScene: GameScene, width: CGFloat) {
...
for (...) {
...
gameScene.addChild(image)
}
}
}
我基本上是想在屏幕上添加一个SKSpriteNode,但我不知道错在哪里。所以我包括了我的三个 classes 参与这个问题的照片。我为所有背景内容创建了一个 class。我在那里使用函数 addChild()
将我的 56 个节点添加到视图中,但它们没有出现在屏幕上。理论上(对我来说)一切都应该有效。
希望你能帮我把节点添加到屏幕上!
编辑:更新了图片。
当你这样调用时:
GameScene().addChild(image)
你每次在 for
中创建本地 GameScene
对象,将 image
添加到这个对象,当你移动到循环的下一个迭代时,这个对象被销毁。事实上,在你的循环之后,没有人 GameScene
对象。
其次,您不需要在 hintergrund
对象中使用 var image = SKSpriteNode()
。您每次都将此引用设置为新对象。
你在代码中有交叉引用,试着做这样的事情:
class GameScene: SKScene {
...
override func didMoveToView(view: UIView) {
hintergrund.setBackgroundForScene(self, width: screenWidht)
}
}
class hintergrund {
...
class func setBackgroundForScene(gameScene: GameScene, width: CGFloat) {
...
for (...) {
...
gameScene.addChild(image)
}
}
}