Ios 如何将发射器节点移动到前面?

Ios 如何将发射器节点移动到前面?,ios,sprite-kit,skemitternode,zposition,Ios,Sprite Kit,Skemitternode,Zposition,背景的zPosition为1,发射器节点为2。静止的背景在前面。我甚至尝试了更高的数字,但没有用 代码 SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"TiltToMove_BG"]; bg.size = self.size; bg.zPosition = 1; bg.position = CGPointMake(self.size.width * 0.5, self.size.height * 0.5); [self ad

背景的
zPosition
为1,发射器节点为2。静止的背景在前面。我甚至尝试了更高的数字,但没有用

代码

SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"TiltToMove_BG"];
bg.size = self.size;
bg.zPosition = 1;
bg.position = CGPointMake(self.size.width * 0.5, self.size.height * 0.5);
[self addChild:bg];

NSString *fireEmmitterPath = [[NSBundle mainBundle] pathForResource:@"fire" ofType:@"sks"];
SKEmitterNode *fireEmmitter = [NSKeyedUnarchiver unarchiveObjectWithFile:fireEmmitterPath];
fireEmmitter.position = CGPointMake(self.size.width * 0.5, self.size.height * 0.5 - 100);
fireEmmitter.name = @"fireEmmitter";
fireEmmitter.zPosition = 2;
fireEmmitter.targetNode = self;
[self addChild:fireEmmitter];

有一个名为
particleZPosition
SKEmitterNode
属性

默认值为
0.0
,因此需要更改此值以使粒子显示在前面

fireEmitter.particleZPosition = 2;
实际发射器节点的
zPosition
在很大程度上是不相关的,因为它是不可见的

这是因为您正在将粒子放置到父节点上

fireEmitter.targetNode = self;
目标节点是添加粒子的位置

如果将其保留为nil,则粒子将添加到发射器节点,因此已经位于背景前面,因为它们将位于发射器节点上的zPosition 0.0处,该发射器节点具有zPosition 2.0

当然,如果你移动发射器,那么所有粒子都会以与发射器相同的方式移动,所以这可能不是你想要的效果

不管怎样,你现在应该被分类了


您可以在
SKEmitterNode

的文档中找到此信息,因为您拼写错误。