SpriteBatchNode

添加多个精灵的2种方法

  • 一种方法是依次添加到一个Layer中
  • 一种方法是依次添加到一个SpriteBatchNode中,再把这个SpriteBatchNode添加到Layer中

效率区别

  • 方法1中每个精灵会被单独绘制一次;
  • 方法2中系统只要对精灵集合进行一次渲染;

SpriteBatchNode的使用方法

  • 初始化精灵集合时要加载一张图片资源(png或者pvr文件),这限制集合中的精灵必须从这张图中设置精灵帧。
  • 使用SpriteBatchNode还要注意,因为精灵都存放在集合中,那么这个集合中的精灵都将在同一个z轴上,即同一深度上;

添加迷雾层代码片段示例:

const char* KFogsPlistFileName="fogs.plist";
const char* KFogsPvrFileName="fogs.pvr.ccz";

SpriteFrameCache::getInstance()->addSpriteFramesWithFile(KFogsPlistFileName);
SpriteBatchNode* fogBatchNode = SpriteBatchNode::create(KFogsPvrFileName);

for(…)
{
    Sprite* sprite=Sprite::createWithSpriteFrameName(fogName);
    fogBatchNode->addChild(sprite);
}

layer->addChild(fogBatchNode);

发表评论