Установить SKEmitterNode в фоновом режиме

Я настраиваю сцену с фиксированным фоном (простой прямоугольник), SKEmitterNode и backgroundLayer (SKNode, включающий в себя много SKShapeNode): это иерархия моей сцены. Но, даже если я добавляю узел эмиттера как дочерний элемент сцены сразу после фиксированного фона и непосредственно перед фоновым слоем, испускаемые частицы находятся на переднем плане, а это не то, чего я ожидаю. действительно, я хотел бы, чтобы они отображались между фиксированным фоном и фоновым слоем, чего не происходит.

Я запускаю это приложение на ios 10. Я пытался добавить дочерние элементы в другом порядке или изменить целевой узел, но это ничего не изменило...

Весь следующий код происходит из 'init(size: CGSize) {}' класса сцены, который наследуется от SKScene. Это весь процесс настройки сцены (когда добавляются дочерние элементы).

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', но они отображаются на переднем плане (= над потомками backgroundLayer), возможно ли это изменить?

1 ответ

Решение

Вы можете выбрать, какие узлы должны быть впереди, а какие сзади, установив их в zPosition.

first_node.zPosition  = 1
second_node.zPosition = 2  // displayed over first node
Другие вопросы по тегам