2013-11-01 16 views
7

アップルのスプライトキットを使用して、SKSpriteNodeの画像を徐々にぼかす方法の例を挙げることはできますか?例えば、ユーザが画面上のボタンに触れて、背景が特定の閾値に達するまでゆっくり(すなわち、徐々に)ぼやけるようにトリガするとしよう。理想的には、処理を元に戻したい(たとえば、ユーザーが同じボタンに触れることで画像をぼかすことができます)。スプライトキットを使用してSKSpriteNodeの画像を徐々にぼかす方法は?

+1

まだSKEffectNodeを見ましたか? – prototypical

答えて

6

これを取るには、2つの可能なパス、両方の使用SKEffectNodes

SKEffectNodesは、あなたがノードにCIフィルタを適用することができますがあります。

ガウスブラーのCIフィルタがあります。そのため、SKEffectNodeを作成し、それにぼかしフィルタを割り当ててから、そのボタンを子として追加します。

どのようにアニメーションを作成しますか?

SKActionを使用してカスタムアクションを作成し、フィルタのパラメータを変更することはできますが、これは遅くなる可能性があり、常に「プログレッシブ」ブラー効果が期待できないためです。

上記のようにフィルタとSKEffectNodeを作成し、SKView.textureForNodeを使用して結果をテクスチャにレンダリングします。結果のテクスチャを配列に追加した後、これをループして、作成した前の画像の上にブラーエフェクトを適用して、設定されたフレーム数になるまで続けます。作成したテクスチャを使用して、SKAction.animateWithTexturesでアニメーションを作成します。私の経験では、これは非常にうまく出てきます。

関連する問題