最近通过各种Cocos2dx的资料学习后, 自己将知识点做了一下总结。
Cocos2dx是一个跨平台的游戏引擎,游戏引擎的概念可自行百度。游戏开发中需要知道的基础大概有内存管理,UI系统,事件处理,动作行为,缓存机制,粒子系统,场景切换 ,网格特效,地图系统,音频系统,物理引擎等。这里主要介绍在Cocos2d中的一些基本概念。
在运行Cocos2d-x中的empty-test时,左下角会有几个数字的显示,"GL verts", "GL calls" 这两个与openGL相关的,重点是“60.0 /0.010" 这个就是FPS(frame pre second), 60.0是每一秒刷新60帧, 0.010是刷新一帧耗时0.01second; FPS一般认识是数值越大,游戏越流畅,而游戏引擎一般是循环来渲染每一帧,cocos2d-x同样如此。
在Cocos2d-x中的这个循环是在Application::run()中处理的,而这每一帧的刷新在Director::mainLoop()中,这样在每一帧中要处理图形的渲染,事件的分发等。
Cocos2d-x中采用节点树形结构来管理游戏对象,一个游戏可以划分不同的场景,一个场景有可以分为不同的层, 一个层下可以有任意个节点。
这些基本的类都派生于Node,可以使用Action来修改游戏节点的熟悉,使其移动,旋转,缩放等。
Director统筹游戏大局,处理OpenGL ES的初始化,场景切换,游戏暂停继续控制等,
Scene主要是游戏的流程控制作用,
Layer在node上扩展了对事件的处理
Sprite在node上增加了纹理,由Texture, frame 和 animation组成。
Cocos2dx中动作有两种, 即时动作和持续动作。
即时动作:在下一帧立刻完成。
持续动作:在一段时间内完成,通过逐渐变化来实现动画效果。
动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。
粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。
在Cocos2d-x中,主要由ParticleSystem提供, 一般可以采用粒子编辑器如Particl Designer,particl-editor编辑出粒子效果导出plist文件,给Cocos2dx使用.
物理这个一般是对现实世界的描述,而游戏中很多场景都需要模拟现实世界, 如物体碰撞,旋转,重力等, 这个当然可以通过自行编程实现,但当场景比较复杂的时候就比较麻烦了;而物理引擎就是把这些属性进行了良好的封装,可以实现对现实物体的模拟。下面是书面上的定义,
物理引擎通过给物体赋予真实的物理属性来模拟现实世界中物体的运动,包括碰撞,移动,旋转等。当游戏中需要实现比较复杂的物体碰撞,滚动或者弹跳式,可以利用物理引擎来模拟。
在Cocos2d-x中采用了2个开源的物理引擎,Box2d和chipmunk, 里面physics目录下,有对其的一个封装。