Можно ли применить фильтр на SKEmitterNode?

У меня есть сцена с SKEmitterNode, которая отлично работает, когда напрямую добавляется в сцену.

Однако я хочу добавить на сцену SKEffectNode, чтобы размыть частицы эмиттера.

Вот как это выглядит.

@implementation MyScene -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { /* Setup your scene here */ self.backgroundColor = [SKColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; SKEffectNode *blurNode = [[SKEffectNode alloc] init]; CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"]; [blurFilter setValue:@10.0 forKey:kCIInputRadiusKey]; blurNode.filter = blurFilter; blurNode.shouldEnableEffects = YES; NSString *bokehPath = [[NSBundle mainBundle] pathForResource:@"Bokeh" ofType:@"sks"]; SKEmitterNode *bokeh = [NSKeyedUnarchiver unarchiveObjectWithFile:bokehPath]; [blurNode addChild:bokeh]; [self addChild:blurNode]; } return self; } 

В результате получается пустой экран.

Поскольку SKScene является подклассом SKEffectNode, я также попытался добавить CIFilter в сцену напрямую.

 -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { /* Setup your scene here */ self.backgroundColor = [SKColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]; CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"]; [blurFilter setValue:@10.0 forKey:kCIInputRadiusKey]; NSString *bokehPath = [[NSBundle mainBundle] pathForResource:@"Bokeh" ofType:@"sks"]; SKEmitterNode *bokeh = [NSKeyedUnarchiver unarchiveObjectWithFile:bokehPath]; [self addChild:bokeh]; self.filter = blurFilter; } return self; } 

Тот же результат.

Этого можно добиться, если вы действительно примените фильтр непосредственно к сцене. Добавьте ко второму коду следующее:

 self.shouldEnableEffects = YES; 

Если вы все еще видите пустой экран, попробуйте использовать яркие частицы на черном фоне вместо белого для этого эффекта. Но ожидайте, что частота кадров значительно снизится. Возможно, вам лучше использовать размытую текстуру для самих частиц в редакторе частиц.

  • Почему, когда я рисую что-то, это не появляется там, где мой палец двигался?
  • Как заставить узел двигаться навсегда в одном направлении?
  • Применение импульса к SKSpriteNode, чтобы дать ему случайное направление
  • Большие SKSpriteNodes, вызывающие падение частоты кадров
  • Spritekit касается
  • Как преобразовать физику Sprite Kits в абсолютные значения точек?
  • Частицы SKEmitterNode собираются вместе при создании
  • Удалить iAds из SKScene
  • Кнопки набора Sprite
  • swift spritekit - не может вызывать «runAction» с аргументом типа «SKAction!»
  • Приложение ссылается на непубличные селекторы в полезной нагрузке: appID, expirationDate, isOpen
  • Interesting Posts

    Можно добавить строки в UITableView, например, приложение iOS5 Weather?

    Несколько NSUrlRequests для извлечения разных страниц WebService для загрузки большего количества данных в TableView

    Страница входа в Twitter появляется, даже если пользователь отказывается предоставить доступ к Twitter из приложения

    Память, увеличивающая каждую итерацию данных ядра

    Cocos2d spritesheets и анимация

    Alamofire – Неоднозначная ссылка на загрузку участника (_: to: method: headers :) '

    Как я могу запретить запуск моего приложения-таймера iOS

    Есть ли хороший способ в XCode повторно использовать классы по проектам и легко поделиться с другими разработчиками?

    UIKeyboardFrameEndUserInfoKey возвращает неправильное происхождение – iOS7

    Обработка удаленных уведомлений с помощью UIApplicationDelegate.DidReceiveRemoteNotification в приложении Xamarin iOS

    Robovm: регистрация для push-уведомления на IOS7 и IOS8

    Выйти из режима выхода

    skmaps огромные утечки памяти путем обновления SKAnnotation

    Элемент удален из представления стека при переключении ориентации

    Почему симулятор iOS приостанавливается?

    Давайте будем гением компьютера.