一般游戏图片资源会打包成一张大图,这样节省空间,又提升速度。打包工具有Zwoptex和texturepacker等等。 CCSpriteBatchNode的初始化只要一张图片,也就是那张大图。然后把所有用到那张大图里面的小图的sprite都加到 CCSpriteBatchNode的child,绘制效率就会提高。1) 缓冲sprite帧
转载
2012-04-06 16:56:00
58阅读
2评论
使用CCSpriteBatchNode实现动画效果//每当屏幕绘制一个纹理的时候,就要经过三个工作:准备渲染、渲染图形和渲染后的清除。这些工作产生了渲染一个纹理所固有的开销,所以要让硬件知道需要渲染的这一组精灵或动作帧,使用的是同一个纹理。这样,图形硬件就会为这组精灵只进行一次准备、渲染、和清除工作了。使用CCSpriteBatchNode就可以做到这一点。//CCSpriteBatchNode的
原创
2013-06-27 07:07:25
4895阅读
1评论
当将大量精灵加载到CCLayer时,如果直接利用[self addChild:sprite]去加载,每加载一个精灵,都必须open,draw,close,而利用CCSpriteBatchNode去加载时只有一次open,draw,close,减少了精灵open,close的时间,但CCSpriteBatchNode有缺点精灵都存放在集合中,那么这个集合CCSpriteBatchNode中的节点(精灵)都将在同一个z轴上,同一深度上
转载
2013-07-12 11:42:00
235阅读
转自:://.cnblogs./jiackyan/archive/2013/04/14/3019880.html1、先说下渲染批次:这是游戏引擎中一个比较重要的优化指标,指的是一次渲染凋用。也就是说,渲染的次数越少,游戏的运行效率越高。2、CCSpriteBatchNode就是cocos2d-x为了降低渲染批次而建立的一个专门管理精灵的类。CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("Icon.png", 1000); batchNode->setPosition(CCPoint
转载
2013-07-15 18:43:00
196阅读
2评论
继承关系CCSpriteBatchNode -> CCNode, CCTextureProtocol成员变量inline CCTextureAtlas* getTextureAtlas(void)inline void setTextureAt
原创
2022-04-24 09:38:46
103阅读
继承关系CCSpriteBatchNode -> CCNode, CCTextureProtocol成员变量inline CCTextureAtlas* getTextureAtlas(void)inline void setTextureAtlas(CCTextureAtlas* textureAtlas) 获取/设置纹理图集,纹理图集是管理一张大图纹理和区域信息结构体static CCSpri
原创
2021-07-13 17:15:02
397阅读
继承关系CCSpriteBatchNode -> CCNode, CCTextureProtocol成员变量inline CCTextureAtlas* getTextureAtlas(void)inline void setTextureAtlas(CCTextureAtlas* texture...
转载
2014-02-11 23:09:00
86阅读
2评论
Cocos2d-x 利用CCSpriteBatchNode建立子弹池我们要实现如何利用CCSpriteBatchNode建立对象,CCSpriteBatchNode的好处是只渲染一次。我们先来问一下.h文件的代码:using namespace cocos2d;
class HelloWorld : public cocos2d::CCLayerColor
{
public:
//
原创
2013-06-26 22:28:25
2272阅读
转载自:://hi.baidu.com/amigoradio/blog/item/10441f0974360598d0581b44.html最先接触到的是CCSprite,就是一张图片,可以是背景可以是一个按钮图片。如下CCSprite*bg1= [CCSpritespriteWithFile:@"bg1.png"];bg1.anchorPoint=CGPointZero;bg1.position=CGPointMake(100,200);[selfaddChild:bg1z:1];但一个scene中如果有很多的图片将会导致占用很多内存,加载速度变慢。这时候就需要使
转载
2012-03-06 21:35:00
54阅读
2评论
相关技术文档,我们在渲染一个图片的时候经常都是一次渲染一个,如果图片资源很多的话,自然降低了效率,这个时候,我们想,要是能一次渲染完毕,以后要再创建的时候,就不需要再渲染就好了,刚好提供了一个类:CCSpriteBatchNode,一次渲染多个,具体看如下代码:void MyBathNodeLayer::initLayer() { CCSize size = CCDirector::sha
原创
2023-08-25 14:28:16
126阅读
蓝鸥iOS培训推荐:前段时间曾整理过一篇有关Cocos2d-x节点与渲染树的内容,那么今天要和大家分享的东西还真是有点相似及接近呢!我们今天要学的是Cocos2d-x利用CCSpriteBatchNode提高渲染效率是怎样实现的?有兴趣的同学们可以作为参考资料学习一下!那么费话少说,直接进入到介绍界面,先前给大家介绍过的cocos2d-x的有关内容,都看到过左下角曾出现过的FPS就成了3行,而且还
推荐
原创
2013-10-18 15:08:17
1026阅读
引言: 我们在进行手机游戏开发的过程中,由于手机的内存资源是有限的,那么对纹理贴图的优化是非常有必要的,有可能相同的功能,优化的好与不好对内存资源的消耗是非常明显的,下面我就用一个例子来说明一下。 说明: cocos2d-x游戏开发过程中,左下角的三个参数对我们游戏开发者来说,是非常重要的三个参数指标。第一个是场景中精灵的渲染次数,该数字越大说明越耗资源,我们尽量让这个数字越小越好。第二个数
原创
2013-09-12 10:15:00
247阅读
引言:我们在进行手机游戏开发的过程中,由于手机的内存资源是有限的,那么对纹理贴图的优化是非常有必要的,有可能相同的功能,优化的好与不好对内存资源的消耗是非常明显的,下面我就用一个例子来说明一下。说明:cocos2d-x游戏开发过程中,左下角的三个参数对我们游戏开发者来说,是非常重要的三个参数指标。第一个是场景中精灵的渲染次数,该数字越大说明越耗资源,我们尽量让这个数字越小越好。第二个数
原创
2023-04-27 11:57:17
106阅读
首先对于使用过精灵的童鞋很熟悉CCSpriteBatchNode,至少大家都会知道它能优化精灵,但是至于优化原理这里简单说下:
原创
2023-05-16 22:20:40
155阅读
(1)将*.pvr.ccz文件转换为CCSpriteBatchNode(2) 将对应的plist文件读到CCSpriteFrameCache中(3) 从CCSpriteFrameCache获取资源文件 CCSpriteBatchNode *backgoundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"background.pvr.ccz"]; [self addChild:backgoundBgNode]; [[CCSpriteFrameCache sharedSpriteFrame...
转载
2013-07-16 16:03:00
45阅读
转载自:://tank2308635.iteye.com/blog/12491tips 1:CCSpriteBatchNode的CCSprite节点都必须使用同一个图片文件,你可以把不同的图片放到同一个纹理贴图集中,然后利用CCSpriteBatchNode将所有图片渲染出来, 以提高渲染速度。当你需要显示两个或者更多个相同的CCSprite节点时,你可以使用CCSpriteBatchNode。组合在一起的CCSprite节点越多,使用 CCSpriteBatchNode得到的效果提升就越大。不过因为所有的CCSprite节点都添加到同一个 CCSpriteBatchNode中,所
转载
2012-02-26 17:42:00
66阅读
2评论
在cocos2d 1.0一下,会有CCSpriteSheet提示,但是在1.0以上的版本中,CCSpriteSheet已经被替换成CCSpriteBatchNode,其相应的方法也被替换,如:CCSpriteSheet*mgr = [CCSpriteSheetspriteSheetWithFile:@"flight.png"capacity:5];已被替换成:CCSpriteBatchNode*mgr = [CCSpriteBatchNodebatchNodeWithFile:@"flight.png"capacity:5];
转载
2012-04-06 14:49:00
61阅读
2评论
做程序开发肯定要考虑到内存的优化,毕竟iphone本身的内存就不是很大,这一节主要说这个cocos2d开发对内存的优化,具体表现在,既可以对相同的精灵(图片)只渲染一次,也可以对不能的精灵只渲染一次。下面是程序的做法,先屏蔽前面的代码。先简单介绍一下 CCSpriteBatchNode类,它是用来优化游戏渲染效率的,CCSpriteBatchNode 中的所有CCSprite只会被渲染1
转载
2023-12-24 10:21:22
66阅读
http://o0o0o0o.iteye.com/blog/8055811:CCSpriteBatchNodeCCSpriteBatchNode* batch = [CCSpriteBatchNode batchNodeWithFile:@"bullet.png"]; CCArray* bullets = [batch children];2:用多个单独的文件创建动画CCAnimation, CCSpriteFrame+(CCAnimation*) animationWithFile:(NSString*)name frameCount:(int)frameCount de
转载
2012-04-06 17:59:00
84阅读
2评论
继承关系CCTMXLayer -> CCSpriteBatchNodeCCTMXLayer是在瓦片地图中,抽象一个层的类,它继承自CCSpriteBatchNode,也就是说它抽象了一批相同图片的精灵,在瓦片地图中,用层来抽象她们。成员函数CCSprite* tileAt(const CCPoin...
转载
2014-02-11 13:43:00
59阅读
2评论