【问题标题】:Swift- SKEffectNode takes a while to appearSwift-SKEffectNode 需要一段时间才能出现
【发布时间】:2015-09-15 23:51:07
【问题描述】:

所以我的游戏中有一个暂停按钮,当你按下它时,场景会暂停,除了一个 SKNode(暂停菜单)之外的所有内容都会变得模糊。我通过创建一个具有过滤器的 SKEffectNode 来做到这一点,并将除暂停菜单之外的所有内容添加到其中。它可以工作,但模糊需要 2 秒才能出现在背景中。只要您按下按钮,场景就会暂停,但模糊和暂停菜单只会在几秒钟后出现。有任何想法吗?

代码如下:

     override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

         for touch in (touches as! Set<UITouch>) {
            let location = touch.locationInNode(self)

            if (self.nodeAtPoint(location).name == "PauseButton"){
                if(!scene!.paused) {
                    blurScene()

                    scene!.paused = true
                    self.addChild(pauseMenu!)
                }else {
                    removeBlur()

                    scene!.paused = false
                    pauseMenu!.removeFromParent()
                }
            }
        }
    }

    func blurScene() {
        blurNode = SKEffectNode() //Created in the beginning of the class
        let blur = CIFilter(name: "CIGaussianBlur",    withInputParameters: ["inputRadius": 15.0])
        blurNode!.filter = blur
        self.shouldEnableEffects = true

        for node in self.children {
            node.removeFromParent()
            blurNode!.addChild(node as! SKNode)
        }

        self.addChild(blurNode!)
    }

    func removeBlur() {
        var blurredNodes = [SKNode]()

        for node in blurNode!.children {
            blurredNodes.append(node as! SKNode)
            node.removeFromParent()
        }

        for node in blurredNodes {
            self.addChild(node as SKNode)
        }

        self.shouldEnableEffects = false
        blurNode!.removeFromParent()
    }

【问题讨论】:

    标签: swift blur skscene sknode skeffectnode


    【解决方案1】:

    尝试将 SKEffectNode 添加为根视图并向其添加子节点。然后你就可以设置模糊滤镜了,但是

    self.shouldEnableEffects = false
    

    当你想简单地模糊时

    self.shouldEnableEffects = true
    

    【讨论】:

      猜你喜欢
      • 2017-04-06
      • 2021-08-31
      • 1970-01-01
      • 2012-01-16
      • 2018-10-19
      • 2017-09-07
      • 2016-05-04
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多