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