2016-09-17 55 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