我到处都在寻找如何执行此操作的方法,但这距离我已经接近了。我已经在MyScene.m文件中以编程方式设置了背景图像,并且在同一文件中还设置了粒子发射器sks文件。但是,尽管出现了右下角的文字(计算节点和fps),但效果并未出现。因此,人们会认为效果也会出现,但事实并非如此。任何想法如何解决这一问题?

MyScene.m

-(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];
}


视图控制器具有view done加载方法,也尝试过viewWillLoadWithSubviews但没有用。

最佳答案

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

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

关于ios - 如何使用Xcode中的Sprite Kit在背景图像上添加粒子sks文件作为背景图像的叠加?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21095431/

10-16 11:02