1.CCSpriteBatchNode是为了提高渲染效率而实现的,它继承自CCNode

2.fps:帧率,是游戏中衡量流畅度的一个很重要的概念,cocos中默认的帧率是60,即一秒刷新60帧

3.精灵集合的原理:

提前将要渲染的图片用batchnode加载到内存,需要使用时,直接从内存提取,省去了加载的过程,因而效率高

如果要加载1000 个精灵,加载,渲染重复执行1000 次。使用CCSpriteBatchNode 批量渲染,一次渲染就把所有的CCSprite 绘制出来。大大降低渲染批次。

4.使用步骤:

a.先将要多次渲染的精灵图片加载进batchnode(相当于使用batchnode进行预加载)

b.将batchnode加载进需要使用的CCLayer中

c.需要使用某个精灵(前提是已经在batchnode中加载过了),直接使用

5.代码实现:

加载一张图片:

    /*创建一个CCBatchNode对象,提前渲染你要使用的图片资源*/
batchNode = CCSpriteBatchNode::create("batchnode/CloseNormal.png");
addChild(batchNode);//将BatchNode加载进CCLayer bool T06SpriteBatchNode::ccTouchBegan(CCTouch *pTouch, CCEvent
*pEvent)
{
for (int i = ; i < ; i++)
{
CCSprite * spr = CCSprite::create("CloseNormal.png");//正常,该图片已经在batchnode中提前渲染了
spr->setPosition(ccp(CCRANDOM_0_1()*,CCRANDOM_0_1()*));
batchNode->addChild(spr);//直接添加进batchNode渲染即可
}
return false;
}

加载多张图片:

/*使用BatchNode来加载多张图片,此时需要使用plist*/
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("batchnode/plant.plist");
batchNode = CCSpriteBatchNode::create("batchnode/plant.png");
addChild(batchNode);//将BatchNode加载进CCLayer bool T06SpriteBatchNode::ccTouchBegan(CCTouch *pTouch, CCEvent
*pEvent)
{
static bool flag = true;
CCSprite * spr;
for (int i = ; i < ; i++)
{
if (flag)
{
spr =
CCSprite::createWithSpriteFrameName("CloseNormal.png");//这些图片必须是在batchNode中已经提前熏染过的
}
else{
spr = CCSprite::createWithSpriteFrameName("Icon.png");
}
flag = !flag;
spr->setPosition(ccp(CCRANDOM_0_1()*,CCRANDOM_0_1()*));
batchNode->addChild(spr););//直接添加进batchNode渲染即可
}
return false;
}

最新文章

  1. PSP(16/03/14-16/03/15)
  2. 64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录
  3. ps磨皮
  4. git 使用笔记
  5. Field+offset(len)
  6. Ubuntu 环境变量及 ADB 配置
  7. IDEA 创建Web项目并在Tomcat中部署运行
  8. 10891 - Game of Sum
  9. poj 2246 (zoj 1094)
  10. 使用angularjs中ng-repeat的$even与$odd属性时的注意事项
  11. 10676 涂鸦跳跃(sort)
  12. 最大信息系数(MIC)——Detecting Novel Associations in Large Data Sets
  13. Core官方DI解析(2)-ServiceProvider
  14. day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
  15. [Swift]LeetCode1016. 子串能表示从 1 到 N 数字的二进制串 | Binary String With Substrings Representing 1 To N
  16. day 10 函数命名空间、函数嵌套和作用域
  17. linux Ubuntu 16.04安装 postgresql
  18. git branch 不显示的原因
  19. 二分插入、bisect
  20. 【python】xsspider零碎知识点

热门文章

  1. Linux 字符设备控制技术
  2. django 学习-12 Django表单 初步
  3. 邮箱格式验证demo
  4. CS异步下载
  5. 发布ASP.NET网站到IIS
  6. 图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别
  7. MYSQL多实例配置与使用教程
  8. GPRS组网的几种方案【来自网络】
  9. &lt;img&gt;元素底部为何有空白?
  10. GNU Binutils工具