有没有办法在.sks文件中布局我的整个级别,但只加载目前在视图中的内容?

问题描述:

我见过这个在互联网上提到的概念,但无法找到有关如何做到这一点的任何细节。有没有办法在.sks文件中布局我的整个级别,但只加载目前在视图中的内容?

我想将我的整个关卡放在一个.sks文件中,但在任何特定时刻只加载播放器/帧的视图中的内容。在我的游戏中,我拥有永远上下的平台,简单的流浪敌人,以及可收集的硬币,它们在上下晃动时浮在空中。由于这些行动正在使用

SKAction.repeatForever 

即使不在玩家眼中,他们也在不断地前进。我看到的唯一的另一种选择是给每个动作一个“钥匙”,然后在通过联系开始和停止某些动作时将不可见的精灵放入。虽然可行,但它似乎可以非常迅速地变得非常复杂。

是否有更直接的方式来布置我的整个场景,但只加载当前正在查看的内容?我不知道该怎么称呼这个概念,这可能是我找不到它的原因。

任何见识都被赞赏!

有没有简单的方法来做到这一点。我个人的方法是将您的SKS加载到根本没有连接到根节点的SKSceneSKView),并使用SKCameraNodecontainedNodeSet将所有节点从加载的场景移到可供用户查看的场景。然后,您需要实现方法以在两个场景之间不断交换。

如果您的担心只是行为,那么您可以避免交换,只是暂停所有不在containedNodeSet之内的节点,并且不要对其中的节点感到不安。

+0

谢谢!我会研究containedNodeSet。 – genericguy25

+0

你是否愿意解释你说的第二部分,关于只有在视图中的取消暂停动作? – genericguy25

+0

启动isPaused设置为true的所有节点,然后遍历containedNodeSet将isPaused设置为false。当节点不再位于节点集中时,将该节点重新设置为true。 – Knight0fDragon