残念ながら、NSScrollViewでSKViewを使用することはまったく使用できないようです。
誰かが巧妙な回避策を持っていますか、それとも私は非常に愚かなことをしていますか?
- スクロール時のちらつきがひどい
- ウィンドウのサイズを変更するとちらつきがひどい
- 形は円なのですが、縦横比がおかしくなっています。
これを MacBook Pro (Retina、Mid 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
}
}