1

不幸的是,在NSScrollView中使用SKView似乎完全无法使用。

项目在 github 上可用。

有没有人有任何聪明的解决方法或者我在做一些非常愚蠢的事情?

  • 滚动时可怕的闪烁
  • 调整窗口大小时可怕的闪烁
  • 形状是一个圆形,然而,纵横比变得一团糟。

我在 MacBook Pro(Retina,2012 年中)、OS X 10.10.2 上运行它;可能是特定于设备的。

可怕的闪烁

这是代码,一切都在 AppDelegate 中设置,

class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!

    @IBOutlet weak var spriteKitView: SKView!

    @IBOutlet weak var scrollView: NSScrollView!

    var scene : SKScene?
    var rootNode : SKNode?
    var shape : SKShapeNode?
    var sprite : SKSpriteNode?

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        // Insert code here to initialize your application

        let side = 500.0
        scene = SKScene(size: CGSize(width: side, height:side))
        scene?.backgroundColor = NSColor.whiteColor()
        spriteKitView.presentScene(scene)
        spriteKitView.setFrameSize(CGSize(width: side, height: side))
        scrollView.scrollPoint(CGPoint(x: CGFloat(side/2), y: CGFloat(side/2)))

        // Add root node
        rootNode = SKNode()
        scene!.addChild(rootNode!)

        // Add shape to root node
        shape = SKShapeNode(circleOfRadius: CGFloat(side/10))
        shape!.fillColor = NSColor.redColor()
        shape!.lineWidth = 1.0
        shape!.position = CGPoint(x: CGFloat(side/2), y: CGFloat(side/2))
        rootNode!.addChild(shape!)

        //
        sprite = SKSpriteNode(imageNamed: "image")
        rootNode!.addChild(sprite!)

    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }
}
4

0 回答 0