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

blu*_*eam 7 objective-c transitions sprite-kit skspritenode

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

AwD*_*ven 6

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

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

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

你是如何制作动画的?

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

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