如何使用Sprite Kit逐步模糊SKSpriteNode的图像?

时间:2013-11-01 15:02:44

标签: objective-c transitions sprite-kit skspritenode

有人可以举例说明如何使用Apple的Sprite Kit逐步模糊SKSpriteNode的图像吗?例如,假设用户触摸屏幕上的按钮,然后触摸背景以缓慢(即逐渐)模糊,直到达到特定阈值。理想情况下,我也想颠倒过程(例如,允许用户通过触摸相同的按钮来取消图像)。

1 个答案:

答案 0 :(得分:6)

有两种可能的路径,都使用SKEffectNodes

SKEffectNodes允许您将CI过滤器应用于节点。

高斯模糊有一个CI过滤器。因此,创建一个SKEffectNode,并为其指定一个模糊过滤器,然后将该按钮添加为子项。

你是如何制作动画的?

使用SKAction创建一个自定义动作,并更改过滤器的参数,但是,这可能很慢,并不总是给出你可能期望的'渐进'模糊效果,所以我做的是:

我创建了一个过滤器和SKEffectNode,如上所述,然后我使用SKView.textureForNode将结果渲染为纹理。然后我将生成的纹理添加到一个数组中,之后我将其循环,继续将模糊效果应用于上一个创建的图像,直到我有一定数量的帧。然后使用创建的纹理使用SKAction.animateWithTextures制作动画。根据我的经验,这非常好。