精灵套装中的无尽亚军游戏级别生成

时间:2014-06-25 20:49:33

标签: ios7 sprite-kit

我有一个Endless Runner游戏,滚动时我使用两个中等(约1500像素)节点进行滚动。

他们互相追随,|firstNode||secondNode| 他们每个人身上都有许多物体,树木,各种物理物体。 当其中一个离开屏幕时,我从中删除所有对象,将其重新连接到实际在屏幕上的节点的末尾,然后再次重新创建所有对象 - 在其中一个随机预设中。

但是有一个问题,当我重新创建节点的对象时,我会遇到小的滞后,就像0.1秒一样,这会让我的物理关闭,玩家经常死亡。

如何让游戏在物体再生过程中不会延迟?

我尝试使用GCD在另一个线程中重新创建该东西,但由于我使用了连接和引脚连接而失败,因此需要在主线程中执行此操作。

我还想过在某处预先缓存那些预设部件,但是由于我将关节连接到实际的物理世界,这似乎是不可能的。我还需要重新创建玩家可能选择的硬币。

我该如何解决这个问题?如何在实时重建大量对象时消除延迟?

1 个答案:

答案 0 :(得分:2)

您应该实现对象的池化。

预先创建所有对象,然后根据需要管理重用它们。当您需要一个物体时,从池中取出它。完成后,将其返回池

冲洗,重复。

就池大小而言,基于一次需要多少给定对象。