【问题标题】:set SKEmitterNode to background将 SKEmitterNode 设置为背景
【发布时间】:2019-06-13 00:22:54
【问题描述】:

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

我在 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 的子层之上),是否可以更改?

【问题讨论】:

    标签: swift xcode sprite-kit skscene skemitternode


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2012-09-23
      • 1970-01-01
      • 2012-03-05
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多