cocos2d心得关于精灵帧缓存】的更多相关文章

在cocos2d中,精灵帧缓存CCSpriteFrameCache是用来存储精灵帧的.它没有特别的属性,只存储了一些用来管理CCSpriteFrame的方法. 以一个例子来说明,一般在又纹理图集的程序中,我们使用如下语句添加多个精灵帧,来构成精灵帧缓存: CCSpriteFrameCache* frameCache = [CCSpriteFrameCache  sharedSpriteFrameCache]; [frameCache addSpriteFramesWithFile:@"game-…
转自泰然网(Cocos2d-x 3.x官方文档):精灵帧缓存:http://www.tairan.com/archives/6378/   纹理缓存: http://www.tairan.com/archives/6432/ 精灵帧缓存 简介 SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片.这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把截取好的纹理信息保存在一个精灵框帧内,精灵通过切换不同的框帧来…
//获取精灵帧缓存的单例对象 auto  spriteFrameCache = SpriteFrameCache::getInstance(); //从plist文件添加多个精灵帧 spriteFrameCache->addSpriteFrameWithFile("XX.plist"); //根据图片名称创建一个精灵帧 auto sprite1Frame =spriteFrameCache->getSpriteFrameByName("xxx.png")…
最近在研究cocos,互联网行业中,手游业最近的表现是非常的火,加上本身对游戏有浓厚兴趣,所以便染指了游戏引擎~ 这次的废话就这么简短吧,因为这次记录的东西本身就很少. 在cocos中,为精灵帧添加缓存可以通过下面的方法 cc.spriteFrameCache.addSpriteFrames(url, texture) 其中,第一个参数是一个 plist 或者 json 文件的路径,第二个参数是一个纹理图片对象,一般不传就可以了 添加了精灵帧缓存后,我们就可以通过下面的方法来创建精灵 new c…
内容简要: 1.初始化 2.创建无图的精灵 3.设置精灵贴图大小  4.添加入层中 5.对精灵进行缩放  6.对精灵宽或高进行缩放  7.旋转精灵 8.设置精灵透明度  9.精灵的镜像反转  10.设置精灵的颜色 11.得到图的宽高  12.按照像素设定图片大小  13.在原有的基础上加xy的坐标 14.设置图片锚点    15.从新排列z轴顺序  16.更换精灵贴图 17.设置可视区域 18.贴图无锯齿 //初始化 CCSprite* sprite =[CCSprite spriteWithF…
原文地址http://www.songho.ca/opengl/gl_fbo.html 但有改动. OpenGL Frame BufferObject(FBO) Overview: 在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上.OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer).帧缓冲是一些二维数组和OpenG所使用的存储区的集合:颜色缓存.深度缓存.模板缓存和累计缓存.默认情况下,OpenGL将帧缓冲区作为渲染最终目的地.…
CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture) 渲染到纹理(Render To Texture)是实现很多OpenGL高级效果的一个基础.本文记录了如何用CSharpGL实现RTT. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入(https://github.com/bitzhuwei/CSharpGL) 开始 如图所示,我们把teapot贴到一个矩形上了.这是借助RTT实现的. RTT步骤如下: 创建Framebuffer,…
首先要在Timeline中选中所有的精灵帧,可以通过如下2种的任意一种办法达成: 1按下Shift键的同时鼠标单击它们 2鼠标在Timeline空白区拖拽直到拉出的矩形包围住所有精灵帧方块后放开鼠标. 你可以通过查看Timeline中精灵帧方块上是否有阴影来辨识是否选中了它们. 然后鼠标单击SpriteBuilder菜单Animation->Stretch Selected Keyframes项 最后在弹出的对话框中输入拉伸的间隔即可.…
一个对象的精灵帧(Sprite Frame)有若干关于大小的尺寸. 比较容易混淆,这里记录下来区别: CCSpriteFrame *spriteFrame = self.spriteFrame; CGSize textureSize = spriteFrame.texture.contentSize; CGRect frameRect = spriteFrame.rect; CGSize frameSize = spriteFrame.originalSize; 如果spriteFrame来源于…
https://blog.csdn.net/niu2212035673/article/details/80251949 简述有些时候我们可能需要获取渲染后的图像数据,比较常用的函数是glReadPixels,它可以直接把显存中的数据拷贝到内存中 glReadPixels读取帧缓存数据 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pix…
OpenGL中的帧缓存 在OpenGL窗口中, 左下角的像素为(0, 0). 一般而言, 像素(x, y)占据的矩形区域左下角为(x, y), 右上角为(x+1, y+1). 1. 缓存及其用途 [1]颜色缓存,  左前,右前,左后,右后和任意数量的辅助颜色缓存; [2]深度缓存 [3]模板缓存 [4]累积缓存 2.颜色缓存 1) 颜色缓存存储了颜色索引或RGB颜色数据, 还可能存储了alpha值. 2) 支持立体观察(stereoscopic viewing)的OpenGL实现有左颜色缓存和右…
http://blog.csdn.net/dreamcs/article/details/7691690 转http://blog.csdn.net/xiajun07061225/article/details/7283929 原文地址http://www.songho.ca/opengl/gl_fbo.html 但有改动. OpenGL Frame BufferObject(FBO) Overview: 在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在…
http://blog.csdn.net/dreamcs/article/details/7691690 原文地址http://www.songho.ca/opengl/gl_fbo.html 但有改动. OpenGL Frame BufferObject(FBO) Overview: 在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上.OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer).帧缓冲是一些二维数组和OpenG所使用的存…
http://blog.csdn.net/xiajun07061225/article/details/7283929/ OpenGL Frame BufferObject(FBO) Overview: 在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上.OpenGL管线的最终渲染目的地被称作帧缓存 (framebuffer).帧缓冲是一些二维数组和OpenG所使用的存储区的集合:颜色缓存.深度缓存.模板缓存和累计缓存.一般情况下,帧缓存完全 由wi…
目录 1. 概述 2. 示例 2.1. 着色器部分 2.2. 初始化/准备工作 2.2.1. 着色器切换 2.2.2. 帧缓冲区 2.3. 绘制函数 2.3.1. 初始化顶点数组 2.3.2. 传递非公用随帧不变的数据 2.3.3. 逐帧绘制 3. 结果 4. 参考 1. 概述 事物是普遍联系的.为了达到更加真实的渲染效果,很多时候需要利用被渲染物体在其他状态下的中间渲染结果,处理到最终显示的渲染场景中.这种中间渲染结果,就保存在帧缓冲区对象(framebuffer object,简称FBO)中…
[译]Vulkan教程(17)帧缓存 Framebuffers 帧缓存 We've talked a lot about framebuffers in the past few chapters and we've set up the render pass to expect a single framebuffer with the same format as the swap chain images, but we haven't actually created any yet.…
1.第一步:使用Zwoptex 制作精灵表单 2.制作的表单的名称为 cocos2Dpng,cocos2D.plist: 3.精灵的动画效果 主要分为五部分. // on "init" you need to initialize your instance -(id) init { // always call "super" init // Apple recommends to re-assign "self" with the "…
创建精灵表单: 创建动画先要把图片整合到一个图片上然后生成plist文件: 方法下载Zwoptex软件:http://www.zwopple.com/zwoptex/ 然后打开选择 create new document 1把连续动画单独图片拖到窗口空白处: 2.现在图片是叠放在一起的 点击layout按钮 3. 修改图片大小  (默认很大,要修改成合适大小) 4.修改目录 点击工具栏的publish->publish Setting 把Texture File Path 和Coordinate…
在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:"请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项."这个问题的答案很多,有人讲是"如何加载和保存游戏数据",有人讲的是"如何实现有限状态机"等等.而最吸引我的则是,有一…
译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项.”这个问题的答案很多,有人讲是“如何加载和保存游戏数据”,有人讲的是“如何实现有限状态机”等等.而最吸引我的则是,有一个人讲到,新手cocos2d程序员或者新手cocoa程序,他们…
译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项.”这个问题的答案很多,有人讲是“如何加载和保存游戏数据”,有人讲的是“如何实现有限状态机”等等.而最吸引我的则是,有一个人讲到,新手cocos2d程序员或者新手cocoa程序,他们…
从最初的:http://www.himigame.com/iphone-cocos2d/1043.html 译者: 在我完毕第一个游戏项目的时候.我深切地意识到"使用cocos2d来制作游戏的开发人员们,他们大多会被cocos2d的内存问题所困扰".而我刚開始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:"请简单地讲述你觉得新手cocos2d程序猿在他開始编码之前,最应该先知道,或者应该关注和注意的事项."这个问题的答案非常多,有人讲是&quo…
本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/1043.html ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您! 貌似从Himi建博以来,从来没出现转载过博文的说.但是从今天起,Himi将一些非常好.很值得推荐的博文进行转载分享!大家如果有好的文章,请将博文链接或者内容邮件给我,xiaominghimi@gmail.com    317426208@qq.…
再次感谢原创者:Steffen Itterheim.原创博客原文地址: http://www.learn-cocos2d.com/2012/11/optimize-memory-usage-bundle-size-cocos2d-app/ 译者: 在我完毕第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发人员们.他们大多会被cocos2d的内存问题所困扰". 而我刚開始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:"请简单地讲述你觉…
doxygen工具 生成cocos2d的api文档 位图字体编辑工具 Glyph Designer http://www.71squared.com/glyphdesigner  收费的 CCLableTTF 使用系统字体 //CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64]; 特点:渲染耗内存: CCLabelAtl…
用来作为以后复习使用. 1 #include "ScenceScend.h" CCScene* ScenceScend::scene() { CCScene* s = CCScene::create(); ScenceScend* layer = ScenceScend::create(); s->addChild(layer); return s; } bool ScenceScend::init() { CCLayer::init(); //1.通过文件直接创建精灵 //CC…
精灵(Sprite)是游戏里面的角色,比如敌人,游戏里面运动的物体等等,所以精灵是游戏里面一个非常常见的概念,几乎无处不在.在Cocos2D-x里面精灵是用CCSprite类来进行表示的,它可以用一张图片或者一张图片的一块矩形部分来定义.我们可以通过下面的代码用一张图片资源创建一个精灵,然后把它添加到游戏中: CCSprite *b = CCSprite::create("cat.png"); b->setPosition(ccp(s.width * 0.5, s.height…
看了好几天cocos2dx的帧动画,现在才有点眉目,为了高效期间我们一般会用到 精灵帧缓存(CCSpriteFrameCache) 和动画缓存(CCAnimationCache) .大体的操作步骤: 1.把多个帧动画合成一张,然后生成plist文件,plist文件记载着每一帧在大图中的位置信息. 2.通过plist文件把每一帧加载到精灵帧缓存. CCSpriteFrameCache *frameCache=CCSpriteFrameCache::sharedSpriteFrameCache();…
精灵类是cc.Sprite,它的类图如下图所示.cc.Sprite类直接继承了cc.Node类,具有cc.Node基本特征. 创建Sprite精灵对象 创建精灵对象可以使用构造函数实现,它们接受相同的参数,这些参数非常灵活.归纳起来创建精灵对象有4种主要的方式:1. 根据图片资源路径创建 //图片资源路径 var sp1 = new cc.Sprite("res/background.png"); //图片资源路径和裁剪的矩形区域 var sp2 = new cc.Sprite(&qu…
帧动画-手动切换帧-批次渲染处理动画-纹理图片的本质 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------…