cocos2d-x 缓存

使用缓存的好处,这对于做过web开发的人员来说是很明了的。。

比如从数据库读取数据显示在前台为例,如果每次都调用数据库那么响应时间就会拉长。

如果我们给资源设置缓存,预先的把他们保存在缓存中,那么我们在程序中直接从缓存中读取资源,可以很好的提升游戏运行的效率;

在进入主场景以前,我们设置一个场景,其目的就是预先为资源设置缓存;

//精灵的序列帧缓存
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("bg/allbg.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("mf/mf.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("vir/vir.plist");

	ArmatureDataManager::getInstance()->addArmatureFileInfo("cat/catAnimation/catAnimation.ExportJson");

	SimpleAudioEngine::getInstance()->preloadBackgroundMusic("music/warring.mp3");

在主场景中直接从我们的缓存中读取资源;

switch (_tag)
	{
	    case dirTag:
	                 {
		                auto sprite = Sprite::createWithSpriteFrameName("direction.png");
		                this->addChild(sprite, 2, dirTag);
		 	            break;
	                  }
		case jumpTag:
		             {
						auto sprite = Sprite::createWithSpriteFrameName("tiao.png");
			            this->addChild(sprite, 2, jumpTag);
			            break;
		              }
		case attTag:
		            {
					   auto sprite = Sprite::createWithSpriteFrameName("dangong.png");
					   this->addChild(sprite, 2, attTag);
					   break;
		             }
		default:
			break;
	}

这要比每次从文件夹中读取效率要高得多。

cocos2d-x 缓存

时间: 2024-10-10 15:20:01

cocos2d-x 缓存的相关文章

[cocos2d-js] - 01

使用cocos的 run命令在真实android设备上运行apk时,如果报 adb more than one devices 可以使用下面的命令来解决问题: 1.找到android sdk 下面的 adb 所在目录 .(一般是: %install_directory%/Android/android-sdk/platform-tools/adb) 2.运行下面命令: adb kill-server 使用cocos工具编译apk cocos compile -p android -m relea

cocos2d 缓存池 对象重复使用

1.缓冲池简单描述 我们知道一个游戏比如跑酷类型的游戏,游戏元素会不断重复.游戏元素会不断从屏幕右边创建出来,当一个元素移出左边屏幕时,又会消失掉.如果不断地new 对象,release 对象 会有性能影响.如何优化呢?就涉及到缓存池的概念. 再举一个例子:一个主角在一个竞技场中不断杀怪.每次有5个怪出现,杀死一个又会出来一个.每次出怪就new 怪,死亡怪就release怪,会很浪费的.已经死亡的怪,我们简单地给他补满血不就可以重复使用了嘛!像拍电影,一个人不是真正死亡,只是看起来死了,还是可以

cocos2d JS 本地缓存存储登陆记住账号密码->相当于C++中的UserDefault

在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage. 在LocalStorage.h文件中我们查看了一下源码,使用方法就是设置Key-Value的方式 存储数据:cc.sys.localStorage.setItem("key","value") 获取数据:cc.sys.localStorage.getItem("key") 移除数据:cc.

cocos2d 如何优化内存使用

如何优化内存使用 内存优化原理 为优化应用内存使用,开发人员首先应该知道什么最耗应用内存,答案就是纹理! 纹理几乎会占据90%应用内存.所以尽量最小化应用的纹理内存使用,否则应用很有可能会因为低内存而崩溃. 本文介绍Cocos2d-x游戏通用的两条内存优化原理指导. 认识瓶颈寻找方案 什么样的纹理最耗应用内存?或这些纹理会消耗多少内存?当然这个不用手动计算,只需猜测. 工具在这里已经准备好了.使用的是苹果的工具“Allocation & Leaks”.你可以在Xcode中长按“Run”命令,选择

纹理缓存(Texture Cache)

纹理缓存是将纹理缓存起来方便之后的绘制工作.每一个缓存的图像的大小,颜色和区域范围都是可以被修改的.这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU. CCTextureCache Cocos2d通过调用CCTextureCache或者CCSpriteFrameCache来缓存精灵的纹理. 当这个精灵调用CCTextureCache 或 CCSpriteFrameCache的方法的时候,cocos2dx将使用纹理缓存来创建一个CCSprite.所以你可以预先将纹理加载到缓存中,这

Cocos2D学习笔记(1)- 常用的类

1.坐标系 >屏幕坐标系(UIKit):原点在左上角! >OpenGl坐标系:原点在屏幕的左下角! 2.游戏设计:Director--Scene--Layer--Sprite. >CCDirector:导演类,相当于是游戏策划,负责整个游戏的布局和运行规则的制定. >CCScene:场景类,每个场景可以是一个界面或一个关卡. >CCLayer:图层类,为了方便游戏界面的渲染管理. >CCSprite:精灵类, 小结:一个导演类(CCDirector)可以指挥多个场景类(

cocos2d基本类介绍 director/scene/layer/sprite

[核心类]     导演Director.场景Scene.布景层Layer.精灵Sprite的概念请移步:     导演控制场景,场景控制图层,图层控制精灵,精灵控制动作.     相互之间的关系框架如下图所示:     由此看出:         (1)整个游戏一般只有一个导演.         (2)一个游戏可以由多个场景组成(菜单界面.游戏界面.游戏结束界面等),但是每次导演只能指导一个场景的运作.         (3)一个场景可以由多个图层组成(背景层.道具层.英雄层.怪物层等,每个图

【cocos2d-x游戏开发】cocos中的三种缓存类

Cocos中有三种缓存类: (1):纹理缓存:TextureCache (2):精灵帧缓存:SpriteFrameCache (3):动画缓存:AnimationCache 游戏最要重要的就是流畅度,如果我们的游戏经常因为加载资源出现卡顿的情况,那么这个游戏就没有很好地游戏体验.所以,为了解决这个问题,缓存就应运而生了. 缓存的目的就是:现将所需资源加载到内存中,之后再次使用该资源的时候,就可以直接从内存中读出,而不需要重新加载,从而减少了CPU和GPU的内存占用. TextureCache 在

cocos2dx[3.2](22)——三种缓存类

[唠叨] Cocos引擎主要有三种缓存类: > 纹理缓存     : TextureCache > 精灵帧缓存 : SpriteFrameCache > 动画缓存     : AnimationCache 缓存的目的就是:先将所需资源(如纹理图片)加载到内存中,之后再次使用该资源的时候,就可以直接从内存中取出,而不需要重新加载.从而减少了CPU和GPU的内存占用. 本文对参考文献的内容进行了整理与整合,并加入一些自己的观点. [致谢] http://www.cocoachina.com/

cocos2d 简单高仿天天酷跑游戏

1.先直接上视频来看下这个游戏的样子(GIF已经不能满足这个游戏的展示了) 跑酷游戏最纠结的是地图,碰撞倒是简单,可以自己写或者使用box2d等物理引擎.跑酷游戏地图的特点就是随机性.但是随机中又有策划特意安排的部分,这样让玩家有小小惊喜.所以我就打算这样实现:用地图编辑器编写个几十个地图,然后洗牌掉,从第一个开始取,直到最后最后一个后,再重新洗牌,取第一个.这样就能突出天天跑酷游戏的特点.随机中又有特定安排. 游戏中绘制地图当然不能一次全部完成,那样太慢了.手机屏幕横向就那么长,初始化两个地图