当我的暂停按钮被按下时,我正在尝试模糊我的整个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)
}发布于 2016-08-04 14:06:16
SKEffectNode对象将其子对象渲染到缓冲区中,并可选择将核心图像滤镜应用于此渲染输出。
效果节点仅将过滤器应用于其子节点。您的效果节点没有子节点,因此不需要对其应用滤镜。
您可能需要的是在早期将效果节点添加到场景中--但不要在其上设置过滤器--并将稍后要模糊的所有节点作为其子节点。当需要应用模糊效果时,在(已存在,已具有子对象)效果节点上设置滤镜。
发布于 2017-11-04 19:39:58
我也遇到了同样的问题,试图模糊整个SKScene,但它就是不起作用。拼图中缺少的部分是这一行:
shouldEnableEffects = true发布于 2017-11-10 12:07:30
Swift 4:
来自gameScene:
let blur = CIFilter(name:"CIGaussianBlur",withInputParameters: ["inputRadius": 10.0])
self.filter = blur
self.shouldRasterize = true
self.shouldEnableEffects = truehttps://stackoverflow.com/questions/38757427
复制相似问题