Я пытаюсь остановить бесконечное воспроизведение эмиттера в моем проекте Sprite Kit. Для параметра Lifetime установлено значение Start=1
и End=0
, и он показывает правильный результат, который мне нужен (выдается только один раз).
Проблема возникает, когда я вызываю его в методе обновления, он продолжает излучать бесконечно, я пытался использовать removeFromParent
и removeAllAction
, но безуспешно. Не могли бы вы помочь мне с решением здесь?
-(void)update:(NSTimeInterval)currentTime {
[self updateheartPositionFromMotionManager];
[self matchIt];
if ( _heart.position.x == 512 && _heart.position.y == 484 ){
SKEmitterNode *emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:
[[NSBundle mainBundle] pathForResource:@"sparkly" ofType:@"sks"]];
emitter.position = CGPointMake(self.frame.size.width/2,
CGRectGetMidY(self.frame)+100);;
emitter.name = @"exhaust";
emitter.targetNode =_heart;
[self addChild:emitter];
}else{
[self removeFromParent];
}
}
_heart
совпадает, вы создаете эмиттер. Мне кажется уродливым, есть реальный шанс, что вы создаете 60 излучателей в секунду. Как говорит @akashg, удалите создание из метода обновления. Я рекомендую вам взглянуть на свойство SKEmitterNodenumParticlesToEmit
. - person CloakedEddy   schedule 10.06.2014