我只使用一个场景对象为我的整个2d sidecrolling平台有两层:控制器有一个hudLayer,游戏中的所有内容都有gameLayer。
当我控制我的角色走进一个门(带有一个带回调的物理实体的精灵,将我带到下一个级别)时,下一级加载这些指令:
唯一的问题是,无论出于何种原因,关卡只会部分加载它应该的方式...例如,硬币出现在他们应该的位置,但平台似乎没有。无论是那个还是玩家,还是其他角色。不确定为什么这些物体没有明确加载到正确的位置,但也许有人在遇到此类问题之前可以提供帮助?
大多数节点(如平台)出现在屏幕底部,应该完全显示在屏幕底部。当它们出现在平台上方时,角色也会出现在那里。
P.S。经过多一点的测试后,我逐渐意识到有些平台正在加载到正确的位置,但有时却没有。不知道为什么。对此的修复可能是一次加载一个东西,它们之间有延迟。但我宁愿不必拖延,只是弄清楚这笔交易是什么。
答案 0 :(得分:1)
想出来:无论出于何种原因,我需要在那里添加延迟。我想无论出于何种原因,通过调用removeAllChildren(),一些东西搞砸了这些位置。这是我的怀疑,因为有些时候,下一级的部分会加载,但只有部分,有时只是。
这是我添加的代码,一旦所有孩子被删除等,都会在gameLayer上运行一个动作......
runAction(Sequence::createWithTwoActions(DelayTime::create(0.1), CallFunc::create( [&] ( ) {
loadLevel2(this);
})));