节点类CCNode在基本概念中并不存在,它是为了建立基本概念之间的关联关系而抽象出来的中间辅助类.这个类在Cocos2D-x中极为重要,它为概念类之间搭建了一座宏伟的桥梁.它的继承关系图如下:      从继承关系图知,CCNode是继承自基类CCObject,而场景CCScene.布景层CCLayer和精灵CCSprite都从它继承而来.它是一个抽象类,没有可视化的表示形式,但任何需要画在屏幕上的对象几乎都是从节点类CCNode继承而来.下面这张CCNode及子类继承图可说明这一点:     …
上一节说布景层CCLayer是小容器,那么精灵类CCSprite就是容器添加的内容,它是构成游戏的主要元素.精灵这个名称应该是游戏专用,它表示游戏中玩家操作的主角.敌人.NPC(Non Player Character-非玩家控制角色的缩写).背景.道具和机关等.在Cocos2D-x中,CCSprite本质上就是一张二维的图片对象而已.CCSprite的继承关系图如下:    从上图可知,CCSPrite也是CCNode的子类,不过它还支持纹理和色彩.看一看CCSprite的内部结构和功能.  …
场景类CCScene是Cocos2D-x在屏幕显示的内容,相当于游戏关卡或界面.CCDirector任何时候只能显示一个场景CCScene,游戏中可能存在若干场景,CCDirector通过场景切换达到显示不同场景的目的. Scene继承于CCNode,它相当于一个大容器(CCNode树形结构),将其包含的布景层CCLayer以及CCSprite精灵等游戏元素输出到屏幕中显示,它是整个CCNode树的根节点.其实,CCScene的内部结构非常简单,虽然继承自CCNode,但没有在它的基础上增加任何…
CCDirector类是游戏的组织和控制中心(总指挥),它控制着主屏幕的显示.场景的切换和显示,以及游戏的开始.结束和暂停.它的继承关系图如下:    CCDirector继承自基类CCObject,它还有一个子类CCDisplayLinkDirector,它是一个可以自动刷新的CCDirector.CCDirector包括的核心功能如下:    ·初始化OpenGL和设置OpenGL参数:    ·控制场景管理和切换:    ·设置Cocos2D的配置细节:    ·访问视图(OpenGL.U…
在Cocos2D-x中,每个CCNode都拥有一个摄像机类CCCamera.只有通过CCCamera,CCNode才会被渲染出来.当CCNode发生缩放.旋转和位置变化时,都需要覆盖CCCamera,让CCNode能够通过CCCamera重新渲染.CCCamera的类继承关系图如下:          查看一下CCCamera的内部结构和功能.      ·CCCamera属性:       float m_fEyeX:视角位置坐标x      float m_fEyeY:视角位置坐标y    …
上面说场景CCScene相当于一个大容器,那么布景层类CCLayer就是大容器里的若干个小容器.每个游戏场景CCScene会有很多层CCLayer,每一层CCLayer负责各自的任务.看一下CCLayer的类继承关系图,如下:          可以看出,CCLayer是CCNode的子类,并且它还支持触屏.加速度传感器和键盘输入.除此之外,CCLayer还有很多子类,如下:       这些子类实现了很多UI(如菜单.列表视图.滚(滑)动视图.控件(按钮.开关.滑动条等)),这些子类的用法将在…
了解完Cocos2D-x的基本概念和概念类之后,是不是有一种蠢蠢欲动的冲动,想要探究Cocos2D-x是如何完成这一切的.接着我将通过对Cocos2D-x自代的HelloCpp项目进行分析,初步了解Cocos2D-x游戏的基本框架,揭开Cocos2D-x神秘的面纱.      作为一个Hello World程序,HelloCpp的功能非常简单.打开一个OpenGL窗口,在里面显示了一张Cocos2D-x的log图片,在图片的上面写着"Hello World".在右下角有一个按钮,用来退…
在Cocos2D-x引擎中,有几个非常重要的概念:导演(CCDirector).摄像机(CCCamera).场景(CCSecen).布景(CCLayer).精灵(CCSPrite)和动作(CCAction).当看到这些概念,很容易联想到拍电影.我想Cocos2D在架构设计时,灵感恐怕正是来源于拍电影.我认为游戏除了需要与玩家交互外,和动画.电影制作具有很多相似的元素. 以下分别描述这些概念: ·导演(CCDirector):导演是整个游戏的组织和控制核心.导演可以制定游戏的运行规则,从而让游戏内…
我认为很多开发者面对层出不穷的新技术.新思想和新理念,最为之苦恼的是找不到行之有效的学习方法,对于知识的本质缺乏认识,虽阅读了大量教材,却无法将其融入自己的知识体系,并搭建自己的知识树.不可否认,教材的目录和编排有一定的结构和条理,但它未必符合人的思维结构.叔本华认为一切思想都是产生自我意识的素材,不加消化的接纳,只能成为别人思想的傀儡.我想说cocos2d-x研习录是我对学习cocos2d-x的认识.思考和总结,虽然可能比较肤浅或存在错误,当然也不具有要指导菜鸟.教训老鸟的重大使命,但这是我搭…
游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmunk两种第三方开源物理引擎.这两种物理引擎功能上没有本质的区别,只是Chipmunk是用C语言实现的,Box2D是用C++语言实现的.Box2D目前相对使用更为广泛,所以本节只了解Box2D物理引擎. 要学习Box2D物理引擎,我们先来了解一些Box2D中定义的重要概念,这些概念是构成Box2D世界…