我到处都看过如何做到这一点,但这是我能得到的。我已经在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];
}
视图控制器有视图做了load方法,也尝试过viewWillLoadWithSubviews但是没有用。
答案 0 :(得分:2)
您先添加了粒子效果,然后添加了精灵。这将首先绘制粒子效果,然后在粒子效果上绘制背景精灵。
您可以颠倒运行addChild:
的顺序,也可以只使用zPosition
属性将粒子效果置于背景精灵前面。
答案 1 :(得分:0)
node.particleZPosition = 10; //not zPostion for emitters
和
background.zPosition = 0; //some values to this effect
... Laters