ios - 如何在 Xcode 中使用 Sprite Kit 添加粒子 sks 文件作为背景图像的叠加层?

标签 ios xcode sprite-kit

我到处都在寻找如何做到这一点,但这是我能做到的最接近的。我在 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 Controller 有 view did load 方法,也尝试过 viewWillLoadWithSubviews 但没有成功。

最佳答案

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

您可以反转运行 addChild: 的顺序,或者简单地使用 zPosition 属性将粒子效果置于背景 Sprite 前面。

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

相关文章:

ios - 如何从两个图像 objective-c Sprite 节点制作闪烁按钮

iphone - transitionWithView 和 animateWithDuration 的问题

ios - Phonegap插件半屏摄像头ala Taptalk

objective-c - iCloud Drive 文件夹

objective-c - 将应用上传到商店后 iAd 不会显示

swift - spritekit 场景转换不正确

ios - 如何在TableViewController中实现后退导航按钮?

iphone - 如何释放为 appDelegate 共享实例分配的内存

ios - xcode 设备支持 11.3 15E5216a

ios - 随着时间的推移围绕某个点进行缩放 SpriteKit