[cocos2d-x]用CCSpriteBatchNode进行文理贴图的优化

简介: 引言: 我们在进行手机游戏开发的过程中,由于手机的内存资源是有限的,那么对纹理贴图的优化是非常有必要的,有可能相同的功能,优化的好与不好对内存资源的消耗是非常明显的,下面我就用一个例子来说明一下。

引言:

我们在进行手机游戏开发的过程中,由于手机的内存资源是有限的,那么对纹理贴图的优化是非常有必要的,有可能相同的功能,优化的好与不好对内存资源的消耗是非常明显的,下面我就用一个例子来说明一下。

说明:

cocos2d-x游戏开发过程中,左下角的三个参数对我们游戏开发者来说,是非常重要的三个参数指标。第一个是场景中精灵的渲染次数,该数字越大说明越耗资源,我们尽量让这个数字越小越好。第二个数字是每帧之间的时间间隔。第三个参数是每秒调用的帧数,尽量让它保持在60左右,显得游戏是最流畅的。

操作说明:

我在场景中随机生成100个相同的精灵,看看两种不同的效果。

操作步骤:

1.没有优化之前

代码:

for (int i=0; i<100; i++) {
        CCSprite *sp = CCSprite::create("Icon.png");
        
        int x = arc4random()%480;
        int y = arc4random()%320;
        
        sp->setPosition(CCPointMake(x, y));
        this->addChild(sp);
    }

效果:


2.优化了之后

代码:

CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("Icon.png", 10);
    batchNode->setPosition(CCPointZero);
    this->addChild(batchNode);
    
    for (int i=0; i<100; i++) {
        CCSprite *sp = CCSprite::create("Icon.png");
        
        int x = arc4random()%480;
        int y = arc4random()%320;
        
        sp->setPosition(CCPointMake(x, y));
        batchNode->addChild(sp);
    }

效果:



效果对比:

优化了之后,明显的看的出第一幅图第一个参数是1000,也就是说精灵渲染了1000次,这是比较消耗资源的。第二幅图,第一个参数只渲染一次。 还有就是由于模拟器调用的是PC的内存所以内存比较大,对第三个参数是不会有多大的影响的,但如果是真机调试的话效果会很明显,第一种情况会明显的比较卡。
相关文章
|
前端开发 人机交互
Cocos Creator3.8 项目实战(四)巧用九宫格图像拉伸
Cocos Creator3.8 项目实战(四)巧用九宫格图像拉伸
460 0
|
7月前
|
图形学 Android开发
【实现100个unity特效之6】Unity2d光源的使用
【实现100个unity特效之6】Unity2d光源的使用
71 0
|
7月前
|
开发工具 图形学
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
520 0
|
8月前
|
计算机视觉
CocosCreator 面试题(十九) Cocos Creator 材质 shader 分别是什么?
CocosCreator 面试题(十九) Cocos Creator 材质 shader 分别是什么?
301 0
|
JavaScript
[✔️]cocos creator shader 入门教程2:webgl动起来
[✔️]cocos creator shader 入门教程2:webgl动起来
250 0
cocos creator shader 入门教程3:实现一个左右不同颜色的shader
cocos creator shader 入门教程3:实现一个左右不同颜色的shader
691 0
|
vr&ar 图形学
Unity 的基础光照
Unity 的基础光照
162 0
Unity 的基础光照
|
XML 缓存 数据格式
【Cocos2d-x】Cocos2d-x精灵的性能优化
【Cocos2d-x】Cocos2d-x精灵的性能优化
232 0
Cocos2d-x-v3中3D网格特效动画的应用
Cocos2d-x-v3中3D网格特效动画的应用
178 0
NDK OpenGL ES 3.0 开发(十五):立方体贴图(天空盒)
OpenGL ES 立方体贴图本质上还是纹理映射,是一种 3D 纹理映射。立方体贴图所使的纹理称为立方图纹理,它是由 6 个单独的 2D 纹理组成,每个 2D 纹理是立方图的一个面
342 0

热门文章

最新文章