2017-05-26 236 views
-1
func createBall(){ 
     ballS = SKNode() 
     let ball = SKSpriteNode(imageNamed: "Ball") 

     saw.zPosition = 2 
     ballS.addChild(ball) 
     self.addChild(ballS) 
} 

這會創建一個z節點爲2的Ball節點。但是在運行遊戲時,我想要創建另一個z位置爲1的球。我該怎麼做,或者我有使一個全新的功能,使一個球節點與z位置1?如何更改節點值

+0

是不是隻是繼承SKSpriteNode的問題? –

+0

什麼是「自我」? –

+0

我更喜歡不創建子類 - 而自己是類GameScene - 也只是決定在類中添加一個int,並添加了一些像'if counter == 2 {saw.zPosition = 1} else {saw.zPosition = 2}' –

回答

-1

我建議使用的參數,如:

func createBall(z: Int) { 
    ballS = SKNode() 
    let ball = SKSpriteNode(imageNamed: "Ball") 

    saw.zPosition = z 
    ballS.addChild(ball) 
    self.addChild(ballS) 

}

而且使用它作爲:

createBall(z: 2) 
+0

不知道我爲什麼被低估,歡迎任何反饋。 – sabi

+0

我向你投了票,但它不會顯示,因爲我的聲望很低。謝謝! –

0

如果每個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) 
0

U可以有一個全局變量,因此,只要你想改變u盤上並創建球

所以創建一個變量

var myZposition = 2 

,並在didmove開始創建一個球通過調用createBall查看()

func createBall(){ 
    ballS = SKNode() 
    let ball = SKSpriteNode(imageNamed: "Ball") 

    saw.zPosition = myZPosition 
    ballS.addChild(ball) 
    self.addChild(ballS) 
} 

再經過這些,如果你想改變z位置設置它在didmove年底,查看

myZposition = 1 

然後,每當ü創建從這裏你的球會z位置是1。這將是一個簡單的設置,如果你有很多球和實施z位置的改變對達到遊戲 希望的特定區域,這有助於

+0

謝謝!我贊成你,但我沒有足夠的聲譽來展示。抱歉! –

+0

沒關係,很高興有幫助。 –