【发布时间】:2015-10-25 18:31:50
【问题描述】:
刚刚更新到 El Capitan,发现我的 SKView 显示如下:
为了隔离问题,我尝试像这样实例化一个干净的新 SKView 和 SKScene
let redBox:SKSpriteNode = SKSpriteNode(color: SKColor.redColor(), size:CGSizeMake(300, 300))
redBox.position = CGPointMake(512, 384)
redBox.runAction(SKAction.repeatActionForever(SKAction.rotateByAngle(6, duration: 2)))
testScene.addChild(redBox)
let newSKView = SKView(frame: self.view.bounds)
self.view.addSubview(newSKView)
let testScene = SKScene(size: self.view.bounds.size)
newSKView.presentScene(testScene)
let redBox:SKSpriteNode = SKSpriteNode(color: SKColor.redColor(), size:CGSizeMake(300, 300))
redBox.position = CGPointMake(512, 384)
redBox.runAction(SKAction.repeatActionForever(SKAction.rotateByAngle(6, duration: 2)))
testScene.addChild(redBox)
也呈现为噪点。然后我尝试在新项目的 ViewController.viewDidLoad 中运行完全相同的代码,效果很好。
所以它一定是我在代码库的其他地方做的事情,但我不知道去哪里找。所有代码都是here。
更新:这似乎发生在任何可见的 SKView 上,无论场景如何。
【问题讨论】:
-
如果噪声不是动画的,它可能是来自 GPU 内存的旧数据,但我不知道为什么它不会消失......我今天晚些时候会在我的 El 上测试船长安装。
-
它不是动画的,你说得对,我见过扭曲的文字,甚至还有关闭的鬼魂,最小化,最大化那里的红绿灯,所以它是旧的 GPU 数据
-
我刚刚使用 Swift 2 在 Xcode 7 中创建了一个新项目,使用默认示例,我没有任何问题。我没有看到视图控制器让我将您的代码放入其中,看来 AppDelegate.swift 文件处理场景的创建。
-
是的,这里也一样,新项目有效。在项目中,ViewController 负责创建场景。 LoaderScene 是 SKScene 的子类。但主要问题似乎出在这个特定项目中的 /any/ SKView 上。这让人很奇怪。添加 SKView 会产生这种噪音。 github.com/mortenjust/droptogif/blob/master/droptogif/…
-
我的主要想法是它在 AppDelegate 中。使用
applicationWillBecomeActive,您可以检查vc是否不是nil。可能是这些行有点混乱(我还不知道,我只看了 30 分钟的代码),并且不按顺序调用。你还能在有问题的窗口上调出首选项抽屉吗?该项目目前告诉我,我的配置文件搞砸了,我可能会努力修复这些(我刚刚经历了很多工作让他们在我的项目上工作,这需要一段时间 :) 以便我可以运行它.
标签: xcode cocoa sprite-kit osx-elcapitan