cocos2dx之SpriteBatchNode的作用
在cocos2dx 中有时候我们需要绘制大量的相同的sprite,如果一个一个的sprite天价到场景中,那么openGL 会绘制很多次,这样有时候会降低帧率;
这时候我们想到这肯定需要优化了,恰好cocos2dx 给我们提供了 SpriteBatchNode,我们讲所有的sprite添加到 SpriteBatchNode 对象上,这时候openGL只需要对这些srpite进行一次绘制就可以了。
如:
SpriteBatchNode* batchNode = SpriteBatchNode::create("girl.png"); this->addChild(batchNode); for (int i =0; i < 999; i ++) { Sprite* sprite = Sprite::create("girl.png"); float x = rand_0_1() * 800; float y = rand_0_1() * 600; sprite->setPosition(Point(x,y)); batchNode->addChild(sprite); }
不过需要注意的是 SpriteBatchNode 和 Sprite 的图片的纹理应该是相同的,简单的说就是同一张图片文件。