刚刚更新到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上,无论场景如何。
答案 0 :(得分:1)
我们最近在办公室里发生过这种情况。我认为它可能与硬件/驱动程序问题有关。它发生在一些Mac上,但在使用相同的Xcode版本和相同的源代码时却没有。 SKView在我的MacBook Pro(Retina,15英寸,2013年初)上使用NVIDIA GeForce GT 650M 1024 MB显示了不良数据,但不是我们拥有的其他一些MBP。当我将应用程序拖到不同的监视器时,它会抓取不同的坏数据。
我找到了一个针对我们情况的修复程序,确保将SKView设置为wantLayer,如:
skView?.wantsLayer = true
这也可以通过查看"旺旺的核心动画层"来在界面生成器中设置。