粒子发射器没有显示在图像上(swift spritekit)

时间:2016-09-17 23:12:23

标签: swift sprite-kit skemitternode

这是一个非常基本的问题(我是swift和spritekit的新手)。 所以无论如何我将粒子发射器添加到spritenode(称之为球)并将球添加到我的场景中。这个球位于另一个代表背景的spritenode之上。当我运行应用程序时,球看起来很好,但粒子发射器没有显示。我删除背景时发射器显示正常,但是当我添加背景时则没有。我将发布一个代码示例...

//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)
像我说的那样,这似乎是一个非常基本的问题。我只是不知道我做错了什么。重申一下,当我运行它时,发射器不显示。但如果我拿走背景,发射器会显示出来。

谢谢你的帮助:)

3 个答案:

答案 0 :(得分:1)

简单回答 - 您只需将发射器的zPosition设置为高于背景(但小于球)。 zPosition确定渲染事物的顺序,渲染后的数字越大(因此将其置于顶部)。

您的发射器节点和背景也可能是相同的颜色,因此它看起来好像不存在。

答案 1 :(得分:1)

所以我尝试更改发射器的zPosition,它没有改变任何东西。但当我将背景的zPosition更改为-1时,发射器显示。我希望我知道为什么这个有效。哈哈。但感谢您的建议:)

答案 2 :(得分:0)

我发生了同样的事情,但当你说当你注释掉背景时它并没有发生时,我记得GameViewController中有一个命令,你必须设置false。 skView.ignoresSiblingOrder = false