gpt4 book ai didi

swift - 停止并从 View 中删除 SKScene

转载 作者:行者123 更新时间:2023-11-30 13:41:57 26 4
gpt4 key购买 nike

a 已经子类化了 SKScene 并实现了 didMoveToView ,但目前什么也没做。空函数体。我们暂时将类命名为 TestScene。我还有一个 WindowController 和一个名为 testScene 的 var:

var testScene: TestScene?

To函数实现了showhide

显示函数如下所示:

func show(){
testScene = TestScene(fileNamed:"TestScene")
}

fileNamed:"TestScene"当然是带有动画的 .sks 文件。隐藏函数如下所示:

func hide(){
if let scene = testScene {
scene.paused = true
}
testScene?.removeFromParent()
testScene = nil
self.close()
}

这个 SpriteKit 场景确实出现在我的应用程序中的情况下(单击按钮)。并且执行后就消失了。到目前为止一切都运行良好。

如果我按下按钮,动画就会进入 View 并在触发 hide() 后关闭,但是:自从按下按钮后

testScene = TestScene(fileNamed:"TestScene")

已执行,我的 CPU 负载为 0.5%。即使在隐藏之后。我可以赞扬 TestScene(),CPU 在一个小峰值后下降到 0%。(我在该buttonPressed:函数中做了更多的事情)。所以我非常确定 TestScene 在调用 hide 后不会被删除,并且可能会在后台做一些疯狂的事情。问题是,整个 FinalScene 将产生 5% 的 CPU 占用,并且在第一次出现后该负载不会消失。 :(

我的问题是:如何从执行循环中删除 SKScene?

非常感谢您的任何建议,我已经调试了几个小时了,但不知道如何关闭结束的动画。

附注

最佳答案

解决方案是明确删除 SKView-subview:

animationView.removeFromSuperview()

这意味着我们必须在每个事件上从 xib 构建 View ,因为 View 会丢失。另一种可能性是在 show() 上以编程方式添加 SKView。

关于swift - 停止并从 View 中删除 SKScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462884/

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