我使用SpriteKit构建了一个平台游戏(原型),我有一个问题,我在任何地方都没有看到,包括官方文档。
由于我开始受到帧速率的影响,我决定删除节点,并根据距离播放器位置的距离(基本上是在屏幕外或打开时)将动态重新添加到我的场景中。这似乎工作正常,我可以得到60fps。但这不适用于连接的物体(例如绳索桥)。
我在删除过程中看到异常。我终于设法通过遍历每个node.physicsBody的关节并在删除节点本身之前删除它们来解决这个问题。在恢复它们时,我最初虽然将每个桥接器嵌套在单个SKNode下是答案,但这对于添加到SKPhysicsWorld的关节没有帮助。我玩过使用可变数组来保留所有节点,但是没有弄清楚如何移除或重新连接所有节点,因为它们本质上是一个链。我最后一次认为它试图对关节进行子类化,以便我可以标记它们属于哪个桥并在一次传递中重建整个桥,因为它的任何部分都接近屏幕。
必须有一种更简单的方法来移除和补充节点(带关节)。我可能错过了一些明显的东西。有什么想法吗?