2016-10-15 3 views
1

Я использую этот код для моего размытия, но он, похоже, не работает. Или это работает. Я могу видеть только серый цвет фона вместо размытой сцены. (Первое изображение, я захватил его, используя скриншот, но это захватывает его, как будто он работает отлично, странно.) И когда я прокручиваю вниз, он обычно размывает сцену.Как сделать размытие в реальном времени (в реальном времени) в Sprite-Kit?

UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
[blurEffectView setFrame:self.view.bounds]; 
[self.view addSubview:blurEffectView]; 

The screenshot captures it normally but i can only see grey background.

Here when i swipe down, it works like charm.

Я нашел различные решения для этого, но это были только статические. Я хочу этот тип размытия, он даже не отбрасывает никаких кадров. Есть ли способ заставить это работать?

+0

Заканчивать https://github.com/nicklockwood/FXBlurView –

ответ

3

С

  1. размытие эффект обеспечивается с помощью фильтра с сердечником изображения.
  2. Каждый Ядро изображения Фильтр может быть использован с SKEffectNode
  3. SKScene является SKEffectNode

тогда ...

class GameScene: SKScene { 

    override func didMove(to view: SKView) { 
     super.didMove(to:view) 

     self.filter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius": 10]) 
     self.shouldEnableEffects = true 

    } 
} 

enter image description here

+0

Благодарим вас за ответ, но до сих пор нет размытия, я добавил свой код в свою сцену. 'CIFilter * blur = [Фильтр CIFilterWithName: @ "CIGaussianBlur"]; [размытие setValue: [NSNumber numberWithFloat: 10] forKey: @ "inputRadius"]; scene.filter = blur; ' Я что-то упускаю? –

+0

@ BalázsGyöngyösi: Это моя вина, там отсутствовала инструкция 'self.shouldEnableEffects = true'. Теперь это работает. Я также обновил свой код в ответе. –

+0

Ohh yeees Это работает: DD Большое спасибо :) –

Смежные вопросы