gpt4 book ai didi

Swift- SKEffectNode 需要一段时间才能出现

转载 作者:行者123 更新时间:2023-11-28 08:57:52 24 4
gpt4 key购买 nike

所以我的游戏中有一个暂停按钮,当您按下它时,场景会暂停,除了一个 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()
}

最佳答案

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

self.shouldEnableEffects = false

当你想简单地模糊时

self.shouldEnableEffects = true

关于Swift- SKEffectNode 需要一段时间才能出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32597480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com