cocos2dx Auto-batching的使用
根据官方文档于cocosdx3.0+中推出了Auto―batching的新功能 这个东西到底有什么作用呢? 我们知道在我们的游戏开发中经常会遇到要在屏幕上出现许多相同精灵的情况(比如LOL中的一大群小兵) 根据我们的经验可以得知 在加载精灵时候都会进行一次渲染 那么问题来了 我们每次想加载一大批相同精灵时都需要对每一个精灵进行多次渲染吗? 官方文档说明 Auto-batching(自动批处理)生效需要满足以下条件
简而言之就是只要我们用同一张图片创造精灵,并且没有做特殊处理就可以满足条件 但是有些情况需要注意: for(int i =0;i<10000;i++) { auto a = sprite::create("sprite1.png"); this->addchild(a); auto b = sprite::create("sprite2.png"); this->addchild(b); } 因为我们在一个循环里面每次创建了两个精灵 虽然对于a和b精灵的循环来说是用了同一张图片,但是在内存中的加载是两张图片间隔渲染 如下: sprite1 sprite2 sprite1 sprite2 sprite1 sprite2 。 。 。 sprite1 sprite2 此种情况并不能满足Auto-batching的要求 那么我们可以怎么办呢? for(int i =0;i<10000;i++) { auto a = sprite::create("sprite1.png"); this->addchild(a); a->setGlobleZorder(1); auto b = sprite::create("sprite2.png"); this->addchild(b); b->setGlobleZorder(1); } 此时在内存中会出现以下情况: sprite1 sprite1 sprite1 sprite1 sprite1 sprite1 。 。 。 sprite2 sprite2 sprite2 sprite2 sprite2 sprite2 此时就满足了Auto-batching的条件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |