2

一時停止ボタンが押されたときに GameScene 全体をぼかしようとしています。blurSceen() というメソッドがありますが、シーンに効果が追加されていないようです。これを達成する方法はありますか、それとも何か間違っていますか? このトピックに関する他の投稿を見ましたが、効果を達成できませんでした.

       func blurScreen() {     
            let effectsNode = SKEffectNode()

            let filter = CIFilter(name: "CIGaussianBlur")
            let blurAmount = 10.0
            filter!.setValue(blurAmount, forKey: kCIInputRadiusKey)

            effectsNode.filter = filter
            effectsNode.position = self.view!.center
            effectsNode.blendMode = .Alpha

            // Add the effects node to the scene
            self.addChild(effectsNode)
        }
4

3 に答える 3

3

SKEffectNodeドキュメントから:

オブジェクトはその子をバッファにSKEffectNodeレンダリングし、オプションでこのレンダリングされた出力に Core Image フィルタを適用します。

エフェクト ノードは、その子ノードにのみフィルタを適用します。効果ノードには子がないため、フィルターを適用するものはありません。

おそらく、早い段階で効果ノードをシーンに追加し (ただし、まだフィルターを設定しないでください)、後でぼかしたいすべてのノードをその子として配置することをお勧めします。ぼかしを適用するときが来たら、(すでに存在し、すでに子を持つ) 効果ノードにフィルターを設定します。

于 2016-08-04T06:06:16.087 に答える