如何将发射器节点移到前面?
How to move emitter node to front?
背景的 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];
有一个 SKEmitterNode
的 属性 叫做 particleZPosition
。
默认值为0.0
,因此您需要更改此值以使粒子出现在前面。
fireEmitter.particleZPosition = 2;
实际发射器节点的 zPosition
在很大程度上是不相关的,因为它是不可见的。
这是因为您将粒子放到父节点上...
fireEmitter.targetNode = self;
目标节点是添加粒子的地方。
如果您将其保留为 nil,则粒子将被添加到发射器节点,因此它们已经位于背景前面,因为它们将位于具有 zPosition 2.0 的发射器节点上的 zPosition 0.0。
当然,如果您随后移动发射器,那么所有粒子都会以与发射器相同的方式移动,所以这可能不是您想要的效果。
不管怎样,你现在应该已经排序了。
您可以在 SKEmitterNode
的文档中找到此信息。
背景的 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];
有一个 SKEmitterNode
的 属性 叫做 particleZPosition
。
默认值为0.0
,因此您需要更改此值以使粒子出现在前面。
fireEmitter.particleZPosition = 2;
实际发射器节点的 zPosition
在很大程度上是不相关的,因为它是不可见的。
这是因为您将粒子放到父节点上...
fireEmitter.targetNode = self;
目标节点是添加粒子的地方。
如果您将其保留为 nil,则粒子将被添加到发射器节点,因此它们已经位于背景前面,因为它们将位于具有 zPosition 2.0 的发射器节点上的 zPosition 0.0。
当然,如果您随后移动发射器,那么所有粒子都会以与发射器相同的方式移动,所以这可能不是您想要的效果。
不管怎样,你现在应该已经排序了。
您可以在 SKEmitterNode
的文档中找到此信息。