如何在Xcode中使用精灵套件将粒子sks文件添加为背景图像上的叠加层



我已经到处寻找如何做到这一点,但这是我所能得到的。我已经在MyScene.m文件中以编程方式设置了背景图像,并在同一文件中设置了粒子发射器sks文件。但是,尽管右下角的文本正在出现(计数节点和fps),但效果并未出现。所以人们会认为效果也会出现,但事实并非如此。有什么想法可以解决这个问题吗?

我的场景

-(void) didMoveToView:(SKView *)view {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MyParticle" ofType:@"sks"];
    SKEmitterNode *node = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
    node.particlePosition = CGPointMake(550, 500);
    node.particleBirthRate = 10;
    [self addChild:node];
    SKTexture *backgroundTexture = [SKTexture textureWithImageNamed:@"Scene22"];
    SKSpriteNode *background = [SKSpriteNode spriteNodeWithTexture:backgroundTexture size:self.view.frame.size];
    background.position = (CGPoint) {CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame)};
    [self addChild:background];
}
视图

控制器具有视图确实加载方法,也尝试了viewWillLoadWithSubviews,但没有工作。

您首先添加了粒子效果,然后添加了精灵。这将使粒子效果首先绘制,然后在粒子效果上绘制背景精灵。

您可以颠倒运行addChild:的顺序,也可以简单地使用 zPosition 属性将粒子效果置于背景精灵的前面。

实际上是:

node.particleZPosition = 10; //not zPostion for emitters

background.zPosition = 0; //some values to this effect

后来...

最新更新