SpriteBatchNode的作用大致可理解为:
在开发游戏时,当一个层中需要使用多个相同的图片进行渲染某个sprite时,为了避免同样的图片重复渲染,所以使用该类来创建精灵。代码大致如下:
SpriteBatchNode* node = SpriteBatchNode::create("test.png");
if( !node )
return false;
this->addChild(node);
auto sprite1 = Sprite::create("test.png");
sprite2->setPosition(200 ,300);
node->addChild(sprite1);
<pre name="code" class="cpp">auto sprite2 = Sprite::create("test.png");
sprite2->setPosition(300 ,300);
node->addChild(sprite2);
上述代码中,两个精灵使用的是同一个图片,所以,在cocos2d-x2.2版本中,上面的代码会避免重复渲染同样的图片导致帧率下降。
但是在3.0的版本中,已经不推荐这么做了,以下引用来自
https://github.com/fusijie/Cocos2dx-Release-Note/blob/master/cocos2d-x_v3.0_release_notes.md#sprite-%E5%92%8C-spritebatchnode
Sprite 和 SpriteBatchNode
v2.2 2.2版本中推荐的优化游戏方式是将 SpriteBatchNode
对象设置为 Sprite
对象的父节点。 虽然使用SpriteBatchNode
对