[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的内存所以内存比较大,对第三个参数是不会有多大的影响的,但如果是真机调试的话效果会很明显,第一种情况会明显的比较卡。

时间: 2025-01-19 10:35:42

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

编程-Java实现的图片转字符图,求优化?

问题描述 Java实现的图片转字符图,求优化? import java.io.*; import java.util.logging.*; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import sun.misc.BASE64Encoder; public class ZiFuTu { public static void main(String[] args) throws Exception { //

Flash中如何优化矢量图

优化 问:请问什么是矢量图,矢量图在Flash中需要优化吗? 答:矢量图是用包含颜色位置属性的直线或曲线公式来描述图像的,因此矢量图可以任意放大而不变形,它的大小与图形的尺寸无关,但与图形的复杂程度有关.当我们在Flash中把位图转化为矢量图时,所得到的图形是相当复杂的,得到的矢量图体积比较大,因此,我们还须对矢量图做进一步的优化. 在Flash中我们还可以这样来对转换得到的矢量图进行优化:按"Ctrl+A"组合键选中矢量图,然后按"Ctrl+Alt+Shift+C"

seo框架图

1.SEO流程框架图系列脑图 2. SEO流程框架图-网站分析 3.SEO流程框架图-关键词优化

JS实现焦点图轮播效果的方法详解_javascript技巧

本文实例讲述了JS实现焦点图轮播效果的方法.分享给大家供大家参考,具体如下: 效果图如下: 一.所用到的知识点 1.DOM操作 2.定时器 3.事件运用 4.Js动画 5.函数递归 6.无限滚动大法 二.结构和样式 <div id="banner" class="banner"> <ul id="list-banner" class="list-banner fn-clear" style="lef

[cocos2d-x]躲蜘蛛游戏设计[进阶]

实现一个躲蜘蛛的游戏,具备以下效果: 1.玩家精灵在游戏的最下方. 2.蜘蛛精灵在游戏的最上方,并且从上往下掉落. 3.手动控制玩家精灵. 4.碰撞检测,如果玩家精灵碰到蜘蛛则重玩. 5.音效的设置. 6.Loading界面 7.暂停和开始的设计 效果图: 代码实现: 1.创建默认的HelloWorld项目,屏幕默认的是横屏的,如何设置屏幕为竖屏? 找到RootViewController.mm文件,修改相应的代码即可: // For ios6, use supportedInterfaceOr

Cocos2D-HTML5开源2D游戏引擎

转自:http://www.programmer.com.cn/12198/ 文/林顺 Cocos2D-HTML5是基于HTML5规范集的Cocos2D引擎的分支,于2012年5月发布.Cocos2D-HTML5的作者林顺将在本文中介绍Cocos2D-HTML5的框架.API.跨平台能力以及强大的性能.Cocos2D-HTML5是Cocos2D系列引擎随着互联网技术演进而产生的一个分支.该分支基于HTML5规范集,目标是可对游戏进行跨平台部署.Cocos2D-HTML5采用MIT开源协议,设计上

《Unity着色器和屏幕特效》——1.3 加载飞船维修场景并在场景中漫游

1.3 加载飞船维修场景并在场景中漫游 第一个游戏场景位于星球"Ridley VI"附近.宇航员停下飞船进行一些基础维修,为登陆星球做好准备. 在这里我们先简单地基于Unity的标准着色器来创建不同的材质,从而使得不同的物体表面拥有相近的显示质量. 1.在项目(Project)面板上找到PACKT_Scenes文件夹,并单击文件夹的图标,以便使它的内容显示在资源(Assets)面板上. 2.在资源(Assets)面板上找到名为Chapter1_Start的资源. 3.双击该资源,以便将

J2EE中使用Spring AOP框架和EJB组件

j2ee 快速发展的开发人员社区.对各种后端技术(包括JMS.JTA.JDO.Hibernate.iBATIS等等)的支持,以及(更为重要的)非侵入性的轻量级IoC容器和内置的AOP运行时,这些因素使得Spring Framework对于J2EE应用程序开发十分具有吸引力.Spring托管的组件(POJO)可以与EJB共存,并允许使用AOP方法来处理企业应用程序中的横切方面--从监控和审计.缓存及应用程序级的安全性开始,直到处理特定于应用程序的业务需求. 本文将向您介绍Spring的AOP框架在

为自己的网店商品照片优化出好“卖像”

优化 现在有很多人都在网上开起了商店,使更多上网的人可以坐在家里购买自己喜欢的东西,我们用数码相机将货物拍摄下来并传到网上,供顾客挑选购买.由于顾客不能直接看到物品,所以图片的质量就很重要,如果你没有条件去摄影棚进行专业的拍摄,自己拍的图片又不尽如人意,后期就可以用photoshop这个软件来修整它. 以下是原图与处理结果图 原图 优化图 一. 我们用数码相机将物品拍摄下来,传入电脑.如果你不懂得摄影的知识,比较简单一点的方法就是在光线好的地方,最好将使用白色背景(特别是透明或反光的物品会带上很