SpriteKit视图显示El Capitan更新后的随机噪音

时间:2015-10-25 18:31:51

标签: xcode cocoa sprite-kit osx-elcapitan

刚刚更新到El Capitan,发现我的SKView显示了这个:

enter image description here

为了隔离问题,我试图像这样实例化一个干净的新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上,无论场景如何。

1 个答案:

答案 0 :(得分:1)

我们最近在办公室里发生过这种情况。我认为它可能与硬件/驱动程序问题有关。它发生在一些Mac上,但在使用相同的Xcode版本和相同的源代码时却没有。 SKView在我的MacBook Pro(Retina,15英寸,2013年初)上使用NVIDIA GeForce GT 650M 1024 MB显示了不良数据,但不是我们拥有的其他一些MBP。当我将应用程序拖到不同的监视器时,它会抓取不同的坏数据。

我找到了一个针对我们情况的修复程序,确保将SKView设置为wantLayer,如:

skView?.wantsLayer = true

这也可以通过查看"旺旺的核心动画层"来在界面生成器中设置。