Установить 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