项目里面我可能初始就要暂时存近3000左右个(可能会更多)预置放对象池里吧,那么问题来了,在初始化的时候,这个地卡会卡很久才能加载好,有没有办法优化这个?
现在导致我在进场景的时候,这个要for半天,才能进入游戏
创建30个都会卡。。3000个。。。。。太可怕了
那像贪吃蛇这样的,如何处理呢?
据jare说1.4 的instantiate性能提升了很多倍。 不过创建3000个还是夸张了。 对像池更多的还是复用对像,你没必要一下子全创建出来吧。
那在玩游戏的过程中,没几秒就会复制一个对象来创建,而且3000个真的不多,如果按1比10的比例来,也才三万的分数,再加上场景中还有其它蛇的身体,如果后期加的话,对内存,性能啥的影响不是更大?
你可以试试动态创建sprite,prefab的instantiate就是慢。。。
动态sprite,是什么意思
var node = new cc.Node(“New Sprite”);
var sprite = node.addComponent(cc.Sprite);
var spriteFrame =…
sprite.spriteFrame = spriteFrame;
类似这样。你试试。不确定会更好哈。
不知道3000个是啥就算当初C++的sprite裸体,3000个也是会又些卡的,何况在Creator~
我也是3000多个,卡的受不了了!
我觉得你得处理,非同平的节点要回收,这样不会1000多个,100多个就差不多了,然后重复使用就OK了,我这也有大量金币动画,一开始以为要几十上百个节点,实际最多创建20个 循环使用就够了
其实不一样,你那是当前这个场景用了,就回收,我那个是只是在你可视区域看不到了,但是当前场景还必须要存在,因为需要给其它东西碰撞使用,并不能回收,如果回收了,这个节点就不存在在这个场景了,这就做不到在看不到的情况下,还能触发使用的效果