8

有人可以提供一个示例,说明如何使用 Apple 的 Sprite Kit 逐步模糊 SKSpriteNode 的图像吗?例如,假设用户触摸屏幕上的一个按钮,该按钮将触发背景缓慢(即逐渐)模糊,直到达到特定阈值。理想情况下,我也想反转这个过程(例如,允许用户通过触摸同一个按钮来取消模糊图像)。

4

1 回答 1

7

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

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

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

你如何动画它?

使用 SKAction 创建自定义动作,并更改过滤器的参数,但是,这可能会很慢,并且并不总是会产生您可能期望的“渐进式”模糊效果,所以我要做的是:

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

于 2013-11-01T19:28:30.097 回答