【问题标题】:Can I render the same SKScene to two different views simultaneously?我可以同时将同一个 SKScene 渲染到两个不同的视图吗?
【发布时间】:2019-11-03 22:39:15
【问题描述】:

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

我尝试过的:我已经实例化了两个 SKViews 并在它们两个上调用了 .presentScene(mySharedScene)。我可以同时渲染这些视图,并且动画效果很好。但由于摄像头位置是通过.camera 属性在SKScene 本身上设置的,因此我无法为每个SKView 分配不同的摄像头。

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

【问题讨论】:

    标签: swift macos sprite-kit


    【解决方案1】:

    是的,你可以,我以前做过分屏,但让我告诉你。这是一个真正的痛苦。您的所有更新都会被调用两次,因此您将不得不开发一个围绕它工作的系统。相反,为了获得简单的体验,我建议将您的场景复制到您的第二个视图,然后将您的相机更新到您的新位置。

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

    【讨论】:

    • 哎呀,这很痛苦。但这对于我的用例来说似乎是一个可行的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多