深入理解Cocos2d-x
箭已离弓
总想着自己写博客,可是网上写好的太多。所以就转载过来学习吧。
展开
-
cocos2d-x3.2类FileUtils--实现把资源放在Resources文件目录下达到多平台的引用
当你创建TMXTiledMap* tilemap=TMXTiledMap::create("test1.tmx")或Sprite *sprite=Sprite("HelloWorld.p-ng"),有没有产生这样的疑问--为什么把资源test1.tmx和HelloWorld.png放在项目目录下的Resources文件中即可直接引用而不用标明具体路径,并且可以在多个平台下引用?或许很多人就会这样说转载 2016-01-16 22:25:20 · 2039 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(3)----BATCH_COMMAND
个人原创,欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man上一篇介绍了QUAD_COMMAND渲染命令,顺带介绍了VAO和VBO,这一篇介绍批处理渲染命令BatchCommand,批处理命令的处理在Render中比较简单[cpp] view plaincopyelse if(commandType转载 2016-01-09 18:25:28 · 389 阅读 · 0 评论 -
cocos2dx-2.x CCFileUtils文件管理类分析
cocos2dx文件管理类是一个很重要的类,这里对这个类进行一下分析:CCFileUtils是文件管理类的基类,不同平台下android,ios,win32都有继承于这个类的子类,如androidclass CC_DLL CCFileUtilsAndroid : public CCFileUtils1、单例类:static CCFileUtils* sharedFileUtils()转载 2016-01-11 22:38:03 · 2294 阅读 · 0 评论 -
CCSpriteFrameCache精灵帧缓存分析
CCSpriteFrameCache精灵帧缓存分析(1):1、单例类CCSpriteFrameCache* CCSpriteFrameCache::sharedSpriteFrameCache(void){ if (! pSharedSpriteFrameCache) { pSharedSpriteFrameCache = new CCSpriteFrameC转载 2016-01-11 23:12:52 · 959 阅读 · 0 评论 -
cocos2dx 音频模块分析(1):背景音乐
cocos2dx音效的实现分析:上面那个图是cocos2dx音效部分的实现结构图,总体的思想是:使用同一个SimpleAudioEngine.h头文件,然后在不同平台下对应不同的实现文件,不同平台编译不同的实现文件,这就要求这个类的函数定义成员在各个平台下统一。其实这也可以理解为一种跨平台的实现方式。这里分析android部分:1、预加载背景音乐voi转载 2016-01-11 23:20:15 · 465 阅读 · 0 评论 -
cocos2dx 音频模块分析(2): 音效部分
我们上面几篇分析了cocos2dx音频模块的音乐部分,从这篇开始,我们分析下音效部分:1、//预加载音效文件:pszFilePath 音效文件名void SimpleAudioEngine::preloadEffect(const char* pszFilePath){ //获取音效文件的全路径,如果是apk包里的路径,则不包含assets/ std::string fu转载 2016-01-11 23:25:17 · 593 阅读 · 0 评论 -
CCTextureCache类源码分析
CCTextureCache类源码分析(1): 1、 CCTextureCache类: 这个类跟纹理缓存有关,我们跟着代码分析下这个类是怎么对纹理进行缓存的。 /** Returns the shared instance of the cache * 单例 */ static CCTextureCache * sharedTextureCache转载 2016-01-11 23:35:49 · 505 阅读 · 0 评论 -
(译)如何优化cocos2d程序的内存使用和程序大小:第一部分
译者:在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”。而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项。”这个问题的答案很多,有人讲是“如何加载和保存游戏数据”,有人讲的是“如何转载 2016-01-13 01:32:29 · 588 阅读 · 0 评论 -
(译)如何优化cocos2d程序的内存使用和程序大小:第二部分(完)
前言:从上周发布教程的微博反应情况来看,cocos2der们对于游戏的内存问题还是非常关心的。本文是上一篇博文的续,旨在教大家如何减少cocos2d程序的大小。 全文如下:减少你的程序的大小把纹理的颜色位深度减少到16位,不仅可以减少内存压力,还可以有效地减少程序的体积。但是,我们还有其它方法可以更进一步地减少程序的大小。 TexturePacker转载 2016-01-13 01:34:09 · 349 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND
个人原创,欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man 上一篇文章介绍了cocos2d-x的基本渲染结构,这篇顺着之前的渲染结构介绍渲染命令QUAD_COMMAND命令的部分,通过这部分的函数,学习opengl处理图片渲染的方法,首先介绍这节需要涉及到的基本概念VAO和VBO。VAO和VBO: 顶点数组对象(Ve转载 2016-01-09 18:17:24 · 438 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(1)----cocos2D-X渲染结构
个人原创,欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man 从本篇文章开始,将分析cocos2D-X 3.0源代码,第一部分是从cocos2D-X学习OpenGL,也就是分析cocos2D-X 3.0的渲染代码,本篇首先介绍cocos2D-X 3.0的渲染结构,使用的是3.0正式版。[cpp] view pla转载 2016-01-09 18:08:55 · 515 阅读 · 0 评论 -
Cocos2Dx之调度器-欧阳左至
有的时候我们还需要使用其他的时间触发机制,比如一个重复性动作2秒之后再执行,并且重复间隔为3秒。怎么实现呢?通过前面的分析,我们知道每个帧间隔时间到期后,都会调用CCDirector的mainLoop来绘制场景和释放内存回收池。这个时间点是Cocos2Dx绘制场景的时间点。帧的间隔时间是确定的,它是Cocos2Dx的最小时间单位。我们可以通过累加已经过去的时间来实现一个定时器,并在指定的时转载 2016-01-09 00:36:00 · 791 阅读 · 0 评论 -
Cocos2Dx之动作Action-欧阳左至
Cocos2Dx提供了调度器。结合调度器,我们可以不断地修改节点的属性,从而实现丰富的动态效果。但是这样做过于麻烦。举个例子,我们需要把一个精灵从一个位置移动到另外一个位置。从我们前面提到的内容来思考一个可行的方案:在父节点的update中,将它的位置移动镇间隔时间移动的距离。假定目标位置到初始距离为d,移动时间指定为t秒,帧间隔时间1/60秒,那么每个update我们需要往目标位置移动d/60t转载 2016-01-09 00:29:28 · 537 阅读 · 0 评论 -
Cocos2Dx之处理键盘输入-欧阳左至
键盘输入在Cocos2Dx分为两个部分。第一部分是一些功能键的处理:后退键和菜单键。第二部分是处理字符输入。功能键相关的代码位于cocos2dx\keypad_dispatcher。字符输入的代码位于\cocos2dx\text_input_node。我们先看功能键的处理部分。功能键的处理比较简单,只是支持后退键和菜单键。而且功能键的支持只是对WP和Android有效。功能键部分的类关系如转载 2016-01-09 00:40:02 · 583 阅读 · 0 评论 -
Cocos2Dx之动画-欧阳左至
动画实际上是眼睛造成的错觉。一般情况下,如果每秒连续放映24张以上图片,人眼就看不出有停顿。如果帧速达到了60,甚至更高,那么基本上没人可以感觉到停顿了。动画就是利用这一特性,在每个连续的帧里面,让物体做一些小的变化,从而让人感觉物体自己在动一样。就像下面的马儿,8张图片以1/60秒的速度播放,就是一只奔跑中的马儿。动画相比与动作,可以完成更加复杂精细的动态效果,这是动作做转载 2016-01-09 00:41:52 · 689 阅读 · 0 评论 -
Cocos2Dx之渲染流程-欧阳左至
渲染时一个游戏引擎最重要的部分。渲染的效率决定了游戏的流畅度清晰度,跟前面的介绍的内容相比,渲染是最具技术含量的事情,也是一个需要很多专业知识的事情。这里我们有这个机会,来学习下一个游戏引擎的渲染是怎么做的。Cocos2Dx是一个2D框架,可以简单地看做z轴在一个平面上,Cocos2Dx采用的OpenGL技术决定了往3D渲染上面走也不是不行的。最新3.2版本已经支持3D骨骼动画的CCSprite。转载 2016-01-09 00:43:27 · 794 阅读 · 0 评论 -
Cocos2Dx之游戏启动过程-欧阳左至
Cocos2Dx应用由导演(CCDirector)、场景(CCSprite)、层(CCLayer)和精灵(CCSprite)构成。导演负责管理整个游戏。映射到操作系统,每个操作系统需要的应用入口都不一样。可以看到CCApplication是平台相关的,每个操作系统平台都有自己的CCApplication实现 ,具体代码放在platform下面。为了对开发者透明,Cocos2Dx给出了AppDele转载 2016-01-09 00:55:34 · 1019 阅读 · 0 评论 -
Cocos2Dx之内存管理-欧阳左至
Cocos2Dx的所有的类都直接或间接继承自CCObject,让类具有自动的内存管理能力。根本上讲,是借鉴自苹果的设计思维。从iPhone版的Cocos2Dx,到C++版的Cocos2Dx,以及到后面的JS,HTML5,保持API的一致性可以帮助开发者快速适应或者选择新的开发语言。沿袭的Objective-C风格个人觉得很不错,采用C++开发就是需要有自己的风格,或者叫规范,来指导开发者,避免迷失转载 2016-01-09 00:57:13 · 679 阅读 · 0 评论 -
Cocos2Dx之触控处理-欧阳左至
在上个章节中,我们已经看到了Win 32的消息泵驱动CCDirector在每个帧间隔时间到期后,调用mainLoop。但是对于触控事件,它同样是操作系统上报给应用的事件,我们没有看到它的踪迹。事实上,对于触控事件、键盘事件、应用相关的事件,比如关闭、转为背景应用等,都是放在Win 32的窗口回调函数当中处理的。在AppDelegate::applicationDidFinishLaun转载 2016-01-09 00:58:50 · 1545 阅读 · 0 评论 -
EditBox 编辑框
EditBox 编辑框用法以及常用接口:[cpp] view plain copy print?local img = cc.Scale9Sprite:create("image/testimg2.png") local img2 = cc.Scale9Sprite:create("image/testimg2.png")转载 2017-05-10 16:12:09 · 2084 阅读 · 0 评论