cocos2d-x作为一个跨现在几个主流平台的游戏引擎,受到了很多开发者的喜爱,初步接触该引擎,对该引擎的基础知识做个简单的了解和学习,本文主要介绍了一些该引擎的常用类。
1. CCNode(节点类)
CCNode是Cocos2D-x 中的主要类, 继承自CCObject。
任何需要在屏幕上显示得都是节点类,最常用的节点类包括:
场景类(CCScene)、布景层类(CCLayer)、人物精灵类(CCSprite)、菜单类(CCMenu)。
El:
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
// 创建一个节点
CCNode *anode =CCNode::create();
// 将节点作为子节点加入场景类中
this->addChild(anode,0);
2.CCDirector (导演类)
CCDirector 类是整个游戏的管理者,包括管理游戏的开始和结束等。
El:
bool AppDelegate::applicationDidFinishLaunching(){
// 获得导演类
CCDirector *pDirector = CCDirector::sharedDirector();
// 设置OpenGL视图
pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView());
// 设置是否显示每帧时间
pDirector->setDisplayStats(true);
// 设置每帧时间
pDirector->setAnimationInterval(1.0 / 60);
// 创建场景
CCScene *pScene = HelloWorld::scene();
// 运行场景
pDirector->runWithScene(pScene);
return true;
}
代码清单3-7 游戏进入后台或者从后台返回时导演类的工作
voidAppDelegate::applicationDidEnterBackground() {
CCDirector::sharedDirector()->stopAnimation();
}
voidAppDelegate::applicationWillEnterForeground() {
CCDirector::sharedDirector()->startAnimation();
}
3.场景类(CCScene)
CCScene 类是CCNode 的子类, 和CCNode 相比,它只是添加了一个特性,那就是拥有自的锚点,位置在屏幕的正中央。除此之外,它目前还没有额外的功能,只是一个抽象的概念.
El:
CCScene* HelloWorld::scene()
{
// 新建场景类实例
CCScene *scene = CCScene::create();
//CCScene *scene = CCScene::node();
// 定义布景层
HelloWorld *layer = HelloWorld::create();
// 将布景层加入场景
scene->addChild(layer);
// 返回场景类
return scene;
}
4.布景层类(CCLayer)
布景层类CCLayer 是CCNode 类的子类, 并且在此基础上实现触屏事件代理
(TouchEventsDelegate)协议,可以实现CCNode 类的功能,并且可以处理输入,包括触屏和
加速度传感器。
El:
CCScene* HelloWorld::scene()
{
// 新建场景类实例
CCScene *scene = CCScene::create();
// 定义布景层
HelloWorld *layer = HelloWorld::create();
// 将布景层加入场景
scene->addChild(layer);
return false;
}
5.菜单类(CCMenu)
CCMenu 是一个菜单项的容器,用来装载各种菜单项
6.控件类及其子类:
(1). 拖动滑块的控件类CCControlSlider
(2)颜色选择盘类CCControlColourPicker
(3)开关按钮类CCControlSwitch
(4)按钮类CCControlButton
7.精灵类(CCSprite)
精灵类用一张图或图片的一个矩形表示,主要表示游戏中的人物。
8.贴图类CCTexture2D
贴图累就是图片对象的意思,可以通过它创建精灵对象等。
9.精灵批处理类CCSpriteBatchNode
10. 精灵帧类CCSpriteFrame
精灵帧的概念是相对于动画而产生的。一个精灵是固定的节
点,它可以拥有许多精灵帧(CCSpriteFrame),在它们之间切换就
形成了动画
11. 精灵帧缓存类CCSpriteFrameCache
精灵帧缓存类CCSpriteFrameCache用来存储精灵帧,提
前缓存起来有助于提高程序的效率。 CCSpriteFrameCache
是一个单例模式,不属于某个精灵,是所有精灵共享使用
的
12. 摄像机类(CCCamera)
所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出
来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera类,让这个节点通过
CCCamera 类重新渲染
13.容器类
(1)CCArray 类似于存储数组的容器
(2)CCDictionary 类似于哈希表的键值对应的容器
14. 拖动渐隐效果类CCMotionStreak
15. 绘制图形