• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在 Swift 2 中模糊场景

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:27:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在暂停游戏时试图模糊一个场景并且我正在关注 example但我无法在 Swift 2.0 中解决。

很多教程说只截取屏幕截图,然后将该屏幕截图显示为模糊,但我认为这不是一个好主意,我想在没有屏幕截图的情况下模糊 View 。

这是我的尝试:

func createlayers() {
    let node = SKEffectNode()
    node.shouldEnableEffects = false
    let filter: CIFilter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius" : NSNumber(double:1.0)])!
    node.filter = filter
}

func blurWithCompletion() {
    let duration: CGFloat = 0.5
    scene!.shouldRasterize = true
    scene!.shouldEnableEffects = true
    scene!.runAction(SKAction.customActionWithDuration(0.5, actionBlock: { (node: SKNode, elapsedTime: CGFloat) in
        let radius = (elapsedTime/duration)*10.0
        (node as? SKEffectNode)!.filter!.setValue(radius, forKey: "inputRadius")

    }))
}

func pauseGame()
{
    self.blurWithCompletion()
    self.view!.paused = true 

}

我收到“ fatal error :在展开可选值时意外发现 nil”



Best Answer-推荐答案


不需要创建图层方法。 使用这个更新的 blurWithCompletion 方法:

    func blurWithCompletion() {
    let duration: CGFloat = 0.5
    let filter: CIFilter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius" : NSNumber(double:1.0)])!
    scene!.filter = filter
    scene!.shouldRasterize = true
    scene!.shouldEnableEffects = true
    scene!.runAction(SKAction.customActionWithDuration(0.5, actionBlock: { (node: SKNode, elapsedTime: CGFloat) in
        let radius = (elapsedTime/duration)*10.0
        (node as? SKEffectNode)!.filter!.setValue(radius, forKey: "inputRadius")

    }))
}

关于ios - 如何在 Swift 2 中模糊场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35331053/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap