0
我基本上想要在屏幕上添加一個SKSpriteNode,我不知道它出錯的地方。所以我列出了參加這個問題的三個班級的照片。我爲所有背景創建了一個類。在那裏,我使用功能addChild()
將56個節點添加到視圖中,但它們不出現在屏幕上。理論上(對我而言)一切都應該起作用。SpriteKit:將SKSpriteNodes添加到視圖
希望你可以幫我加入的節點到屏幕上!
編輯:更新了圖片。
我基本上想要在屏幕上添加一個SKSpriteNode,我不知道它出錯的地方。所以我列出了參加這個問題的三個班級的照片。我爲所有背景創建了一個類。在那裏,我使用功能addChild()
將56個節點添加到視圖中,但它們不出現在屏幕上。理論上(對我而言)一切都應該起作用。SpriteKit:將SKSpriteNodes添加到視圖
希望你可以幫我加入的節點到屏幕上!
編輯:更新了圖片。
當調用此:
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)
}
}
}
你的解釋是有道理的,我申請我的代碼的變化。可悲的是它仍然不起作用。 –
@LukasKöhl你正在做一個類似的錯誤,並在這一行'hintergrund.setupBackground(screenWidth)'中創建'hintergrund'對象。在這行代碼中創建的對象將在結束'didMoveToView'方法後被刪除 –
當我對'let background = hintergrund()'和'background.setupBackground(screenWidth)'做同樣的事情對我不起作用。我得到一個EXC_BAD_ACCESS錯誤。在我寫的第一部分代碼中。 –