将 SKEmitterNode 设置为背景

set SKEmitterNode to background

我正在设置一个具有固定背景(一个简单的矩形)、一个 SKEmitterNode 和一个 backgroundLayer(一个包含许多 SKShapeNode 的 SKNode)的场景:这是我的场景的层次结构。但是,即使我将发射器节点作为场景的 child 添加到固定背景之后和背景层之前,发射的粒子也位于前景,这不是我所期望的。的确,我希望它们在固定背景和背景层之间呈现,但这并没有发生。

我是 运行 这个应用程序 ios 10。我试图以不同的顺序添加 childs,或更改目标节点,但它没有不要改变任何东西...

以下代码全部来自'init(size: CGSize) {}'的一个场景class继承自SKScene.This是所有场景设置过程(当添加child时).

anchorPoint = CGPoint(x: 0, y: 0)
background.position = CGPoint(x: sceneSize.width / 2, y: sceneSize.height / 2)
background.fillColor = UIColor(white: 0.5, alpha: 1)
background.strokeColor = UIColor.lightGray
addChild(background)

setUpParticleEmitter() // it sets up the particle emitter which is an attribute of the class
addChild(backgroundEmitter) // This is the name of the emitter
backgroundEmitter.targetNode = scene

backgroundLayer.position = CGPoint(x: 0, y: 0)
addChild(backgroundLayer)

gameLayer.position = CGPoint(x: -1 * sceneSize.width, y: 0) // another layer for futur nodes
addChild(gameLayer)

我希望粒子在 'background' 和 'backgroundLayer' 之间渲染,但它们是在前景渲染(=over the backgroundLayer 的 childs),是否可以更改那?

您可以通过设置 zPosition 来选择哪些节点在前面,哪些在后面。

first_node.zPosition  = 1
second_node.zPosition = 2  // displayed over first node