cocos2d-x是个跨平台的2D游戏渲染引擎。引擎是用c++语言开发的,基于OpenGL图形库实现了一套2D游戏开发的框架。程序猿只要基于引擎编写一次游戏代码,即可编译出各个平台(iOS, android, windows等等)的游戏版本。
怎么用cocos2d-x开发游戏:
1. 实现一个游戏页面:
cocos2d-x引擎把一个游戏页面看作是一个场景(CCScene), 场景内可以加入各种节点元素(基于CCNode实现的), 比如图层(CCLayer)、精灵(CCSprite)、文本标签(CCLabelTTF)、菜单(CCMenu)等。
一般会在场景内先加入一个图层(CCLayer)支持触摸、加速计等的事件响应,只有CCLayer才支持事件响应,然后再把各个节点元素加到图层上。
一个场景内也可能分为多个图层,各个图层分别负责不同的功能,一个专门用于放UI界面、进行事件响应,一个专门用来放背景,一个专门放动画。
游戏中的各个节点元素经常需要动画,cocos2d-x在CCNode类里实现了对动画(CCAction)的支持,只需要调用runAction()方法,即可轻松添加各种动画。
2. 页面间切换:
CCDirector类对场景间切换做出了支持,通过replaceScene、pushScene、popScene等几个方法进行切换。
3. 事件响应:
CCLayer默认不启用事件接收,需要显示启用。启用后,重载下列函数,即可在下列函数内进行触摸事件的响应:
void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);
void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);
cocos2d-x游戏引擎的大致结构:
CCDirector类是整个引擎的核心,主要负责场景(CCScene)切换、游戏状态管理(暂停、恢复、终止)、引擎本身属性的一些设置。
CCScene类表示场景,可以添加各种图层(CCLayer),
CCLayer类表示图层,能够接收触摸、加速计等事件,也能够管理各种节点元素,如文本标签(CCLabelTTF)、菜单(CCMenu),
CCSprite类用来表示游戏内的各种角色,该角色支持动画、水平变换等各种操作, 可以方便的模拟现实中的各种效果。
CCLabel类表示标签,可以往上面写文字、贴纹理图片等,用来显示文字、图片。
CCMenu类表示菜单,相当于按钮。
CCAction类表示动作,或者说动画,所有基于CCNode类的对象都可以轻松实现各种动画。
CCTransitionScene类表示场景切换,实现各种场景切换的效果。
CCActionManager 管理动作的单例
CCSpriteFrameCache 管理图片资源的单例
CCTextureCache 管理纹理的单例
CCTouchDispatcher 分发触摸事件的单例
CDAudioManager 管理音频的单例
SimpleAudioEngine 音频引擎