2016-09-17 67 views
4

這是一個非常基本的問題(與新的swift和spritekit新)。 所以無論如何我添加一個粒子發射器到spritenode(稱之爲球)並添加球到我的場景。這個球位於代表背景的另一個spritenode之上。當我運行該應用程序時,球看起來很好,但粒子發射器不顯示。當我刪除背景時,發射器顯示正常,但當添加背景時不顯示。我會發佈一個代碼示例...粒子發射器沒有顯示在圖像上(swiftkit)

//Background 
let background = SKSpriteNode(imageNamed:"Background") 
background.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 
background.zPosition = 0 
self.addChild(background) 

//Ball 
let ball = SKSpriteNode(imageNamed: "ball") 
ball.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 
ball.zPosition = 1 
ball.physicsBody = SKPhysicsBody(rectangleOfSize: ball.frame.size) 
ball.physicsBody?.usesPreciseCollisionDetection = true 


//Emitter 
let emitter = SKEmitterNode(fileNamed: "emitter") 
emitter.targetNode = self 

ball.addChild(emitter) 

self.addChild(ball) 

就像我說的,這似乎是一個非常基本的問題。我只是不知道我做錯了什麼。只是重申,當我運行這個時,發射器不顯示。但是如果我拿走背景,發射器顯示。

感謝您的幫助:)

+1

您可以嘗試將發射器的'zPosition'設置爲高於背景的數字,因此發射器出現在頂部,例如, 'emitter.zPosition = 2' –

回答

1

答案很簡單 - 你只需要設置你的發射器的z位置比背景的(但少於球)高。 zPosition決定渲染事物的順序,渲染後的數字越高(因此將其置於頂部)。

你的發射器節點和你的背景也可能是相同的顏色,所以它看起來好像它不在那裏。

1

所以我試着改變發射器的z位置,它沒有改變任何東西。但是當我將背景的z位置改爲-1時,發射器顯示出來。我希望我知道爲什麼這個作品哈哈。但是,謝謝你的建議:)

+0

是的,如果Apple在文檔,示例,演示和說明上花費了一些錢,那該多好。最好的參考資料很少。 – Confused

0

我有同樣的事情發生,但是當你說這不會發生當你註釋掉背景時,我記得在GameViewController中有一個命令,你必須設置false。 skView.ignoresSiblingOrder = false