我想同时渲染两个共享一个公用SKView
的SpriteKit SKScene
。我希望每个SKView
展示场景的不同部分(例如,来自不同的SKCameraNode
)。这可能吗?
我尝试过的操作:我实例化了两个SKView
并在它们两个上都调用了.presentScene(mySharedScene)
。我可以同时渲染这些视图,动画也可以正常工作。但是,由于相机位置是通过SKScene
属性在.camera
上设置的,因此我无法为每个SKView
分配不同的相机。
最终,我想创建一个利用SpriteKit物理引擎的简单弹跳球。每个SKView
将显示在不同的物理监视器上,并且球应该能够在它们之间反弹。我这样做纯粹是为了学习。
答案 0 :(得分:1)
是的,您可以,我之前已经做过分屏显示,但是请允许我告诉您。真是痛苦。您所有的更新都会被调用两次,因此您将不得不开发一个可解决该问题的系统。相反,为了获得简单的体验,我建议将场景复制到第二视图,然后将相机更新到新位置。
func didFinishUpdate()
{
let copy = scene.copy()!
view2.presentScene(copy)
copy2.camera!.position = newPosition
}