相关疑难解决方法(0)

无法在iOS9中暂停SKEmitterNode

我尝试了一些解决方法,但仍然无法暂停现有的粒子iOS9.我正在使用以下技术来暂停场景:

  • 暂停场景 self.paused = YES;
  • 设置自定义globalPause = YES;变量来控制update:方法执行(因为update:在场景暂停时仍然运行).

关键是我不会暂停视图,而是暂停视野.因为这个原因,我不会暂停视图.

以下是可以重现此问题的代码iOS9:

#import "GameScene.h"

@interface GameScene ()

@property (nonatomic, strong)SKEmitterNode *emitter;

@end

@implementation GameScene


-(void)didMoveToView:(SKView *)view {


    [self addChild:[self getSpaceDustEmitter]];

}

//No need for this method though :)

-(SKEmitterNode*)getSpaceDustEmitter{

    self.emitter =  [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"spacedust" ofType:@"sks"]];
     self.emitter .name = @"emitter_spacedust";
    self.emitter .position = CGPointMake(CGRectGetMidX(self.frame),self.frame.size.height);



    return  self.emitter ;
}


@end
Run Code Online (Sandbox Code Playgroud)

因此,非常简单的例子可以工作,iOS8而不是按预期工作iOS9.会发生什么事情,即使一切看起来都是暂停的,也不是.如果场景未暂停,则取消暂停后的现有粒子移动到它们应该的位置.此外,看起来粒子也会继续产卵,如果暂停时间过长,这会导致明显滞后...

这是粒子编辑器的截图:

粒子编辑器

有人有一些合理的解释吗?到目前为止,我已经尝试明确暂停发射器:

emitterNode.paused = YES;
Run Code Online (Sandbox Code Playgroud)

它没有用,实际上这应该在场景暂停时自动完成(发射器被添加到场景中).这是尝试的另一件事是设置 …

objective-c particles sprite-kit skemitternode ios9

15
推荐指数
1
解决办法
603
查看次数

标签 统计

ios9 ×1

objective-c ×1

particles ×1

skemitternode ×1

sprite-kit ×1