如果每個ball
精靈必須的孩子ballS
節點,那麼你可以做到以下幾點。
定義球的屬性(在class
定義後,即而在此之前的任何功能)
let balls = SKNode()
在
didMove(to:)
,添加ballS
節點:
addChild(ballS)
創建addBall
功能:(唐」 t叫它createBall
除非它確實創造了球)
func addBall(withZPosition zPos: Int) {
let newBall = SKSpriteNode(imageNamed: "Ball")
newBall.zPosition = zPos
ballS.addChild(newBall)
}
然後只需撥打addBall(withZPosition:)
創建並添加一個新球:
addBall(withZPosition: 2)
如果要對創建的球更多的控制(例如,你想將它添加到場景)之前改變一些它的屬性,你可以做一個createBall
功能,創建一個新的球,並返回新節點:
func createBall(withZPosition zPos: Int) -> SKSpriteNode {
let newBall = SKSpriteNode(imageNamed: "Ball")
newBall.zPosition = zPos
return newBall
}
,並以此作爲如下:
let newBall = createBall(withZPosition: 2)
newBall.size = CGSize(x: 50, y:50)
ballS,addchild(newBall)
是不是隻是繼承SKSpriteNode的問題? –
什麼是「自我」? –
我更喜歡不創建子類 - 而自己是類GameScene - 也只是決定在類中添加一個int,並添加了一些像'if counter == 2 {saw.zPosition = 1} else {saw.zPosition = 2}' –