当我在屏幕上移动我的 SKEmitterNode 时,如何使 SKEmitter 粒子相对于背景保持不变?
How to make SKEmitter particles stay relative to the background when I move my SKEmitterNode around the screen?
我觉得这应该是一个非常简单的问题,但我环顾四周,它似乎只是自动为每个人工作。但是由于某些原因,当我在屏幕上移动粒子发射器时,粒子会随之移动,并且粒子发射器节点后面没有任何轨迹。
我正在为屏幕底部周围的角色 运行 制作一个 SpriteKit 游戏,他有一个提升能力,当他提升时会在他身后释放小气泡颗粒,因为他在水下。但是粒子并不是相对于屏幕停留的,它们是相对于玩家并随着他移动的。
下面是一些添加增强气泡的代码:
func addBoostBubbles(){
boostBubbles = SKEmitterNode(fileNamed: "bubbleBoost")!
boostBubbles.particlePositionRange = CGVector(dx: player.frame.size.width, dy: player.frame.size.height)
boostBubbles.position = player.position
boostBubbles.zPosition = 0
self.addChild(boostBubbles)
}
我调用这个函数来创建发射器节点并将其设置到玩家的位置。
然后在 didSimulatePhysics 函数中移动气泡的位置我有这个:
boostBubbles.position.x += xAcceleration
我在屏幕上看到气泡并且发射器节点正在移动到正确的位置,但我希望它们相对于背景,这样气泡就会慢慢地漂浮在玩家身后。
如有任何帮助,我们将不胜感激!!!!
将发射器的 targetNode
属性 设置为背景节点。在 addBoostBubbles
中,尝试添加行:
boostBubbles.targetNode = <background node name>
https://developer.apple.com/documentation/spritekit/skemitternode
targetNode - The target node that renders the emitter’s particles.
这会导致粒子呈现为就好像它们是背景的子项一样。
如果您没有后台节点,则需要添加一个。
我觉得这应该是一个非常简单的问题,但我环顾四周,它似乎只是自动为每个人工作。但是由于某些原因,当我在屏幕上移动粒子发射器时,粒子会随之移动,并且粒子发射器节点后面没有任何轨迹。
我正在为屏幕底部周围的角色 运行 制作一个 SpriteKit 游戏,他有一个提升能力,当他提升时会在他身后释放小气泡颗粒,因为他在水下。但是粒子并不是相对于屏幕停留的,它们是相对于玩家并随着他移动的。
下面是一些添加增强气泡的代码:
func addBoostBubbles(){
boostBubbles = SKEmitterNode(fileNamed: "bubbleBoost")!
boostBubbles.particlePositionRange = CGVector(dx: player.frame.size.width, dy: player.frame.size.height)
boostBubbles.position = player.position
boostBubbles.zPosition = 0
self.addChild(boostBubbles)
}
我调用这个函数来创建发射器节点并将其设置到玩家的位置。
然后在 didSimulatePhysics 函数中移动气泡的位置我有这个:
boostBubbles.position.x += xAcceleration
我在屏幕上看到气泡并且发射器节点正在移动到正确的位置,但我希望它们相对于背景,这样气泡就会慢慢地漂浮在玩家身后。
如有任何帮助,我们将不胜感激!!!!
将发射器的 targetNode
属性 设置为背景节点。在 addBoostBubbles
中,尝试添加行:
boostBubbles.targetNode = <background node name>
https://developer.apple.com/documentation/spritekit/skemitternode
targetNode - The target node that renders the emitter’s particles.
这会导致粒子呈现为就好像它们是背景的子项一样。
如果您没有后台节点,则需要添加一个。