我可以同时将相同的SKScene渲染到两个不同的视图吗?

时间:2019-06-21 05:25:38

标签: swift macos sprite-kit

我想同时渲染两个共享一个公用SKView的SpriteKit SKScene。我希望每个SKView展示场景的不同部分(例如,来自不同的SKCameraNode)。这可能吗?

我尝试过的操作:我实例化了两个SKView并在它们两个上都调用了.presentScene(mySharedScene)。我可以同时渲染这些视图,动画也可以正常工作。但是,由于相机位置是通过SKScene属性在.camera上设置的,因此我无法为每个SKView分配不同的相机。

最终,我想创建一个利用SpriteKit物理引擎的简单弹跳球。每个SKView将显示在不同的物理监视器上,并且球应该能够在它们之间反弹。我这样做纯粹是为了学习。

1 个答案:

答案 0 :(得分:1)

是的,您可以,我之前已经做过分屏显示,但是请允许我告诉您。真是痛苦。您所有的更新都会被调用两次,因此您将不得不开发一个可解决该问题的系统。相反,为了获得简单的体验,我建议将场景复制到第二视图,然后将相机更新到新位置。

func didFinishUpdate()
{
   let copy = scene.copy()!
   view2.presentScene(copy)
   copy2.camera!.position = newPosition
}