【发布时间】:2014-06-25 20:49:33
【问题描述】:
我有一个 Endless Runner 游戏,我使用两个适度(大约 1500 像素)节点进行滚动。
他们互相关注,就像这样|firstNode||secondNode|
他们每个人身上都有许多物体,树木,各种带有物理实体的物体。
当其中一个离开屏幕时,我从中删除所有对象,将其重新附加到实际在屏幕上的节点的末尾,然后再次重新创建所有对象 - 在随机预设之一中。
但是有一个问题,当我为节点重新创建对象时,我会遇到小延迟,大约 0.1 秒,这使我的物理关闭并且玩家经常死亡。
如何使游戏在对象的再生过程中不滞后?
我尝试使用 GCD 在另一个线程中重新创建该东西,但由于我使用关节和引脚连接而失败,并且它需要在主线程中执行此操作。
我也考虑过在某处预先缓存那些预设部分,但由于我将关节连接到实际的物理世界,这似乎是不可能的。我还需要重新创建玩家可能捡到的硬币。
我该怎么做?实时重建大量对象时如何消除延迟?
【问题讨论】:
-
你不应该为你的新节点创建所有的对象,而应该只创建那些即将进入视图的对象。这将提高您的 FPS,节省您的内存和延迟时间。
-
@sangony 我创建了可以看到的对象,它们会在几秒钟内出现。
-
你在真机上测试过吗?模拟器往往滞后更多。
标签: ios7 sprite-kit