Cocos2d-x学习笔记(二)Cocos2d-x整体框架
来源:互联网 发布:三毛 知乎 编辑:程序博客网 时间:2024/05/16 00:53
原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38680123
前言
上一节我们简单分析了HelloWorld工程,这一讲我们将进一步来看看Cocos2d-x的整体框架。
在了解Cocos2d-x的整体框架之前,我们不妨想想拍摄一部电影需要些什么?
导演、舞台(场景)、布景、演员,有了这些基本条件后,在这些元素都有了之后,演员就可以根据剧本,表现不同的动作行为。
同理,做一个游戏就像是拍摄一部电影,你同样需要这些元素,而Cocos2d-x恰好又进行了相应的提供。
导演 - CCDirector
在cocos2d-x引擎中,CCDirector是整个游戏的控制核心,利用它使游戏的各个场景有序进行,并通过栈的方式,对场景进行管理。CCDirector是一个单例,可通过CCDirector::sharedCCDirector()方法获得。所以在整个游戏里面,一般只有一个导演,需要通过调用它对游戏镜像初始化和销毁工作。
void runWithScene(CCScene * scene);// 将场景入栈,并激活(只适用于整个游戏的第一个Scene,HelloWorld工程的AppDelegate中有用到)void replaceScene(CCScene * scene);// 将新场景入栈并激活,旧场景出栈并施放void pushScene(CCScene * scene);// 将新场景入栈并激活void popScene();// 场景出栈void pause();// 暂停场景渲染和活动void resume();// 恢复场景渲染和活动CCSize getVisibleSize(); // 获取可显示区域大小(HelloWorld工程的AppDelegate中有用到)// ...
场景 - CCScene
在游戏里,场景就是关卡,不同的关卡通过不同的场景来实现及切换。
Cocos2d-x中,场景内存放着需要渲染的布景,他们作为一个整体,一起渲染,一起销毁。
继承自CCNode,并用于联系所有CCNode节点。
创建一个CCScene,主要需要这个方法:
static CCScene * scene(); //生CCScene
布景 - CCLayer
继承自CCNode,可以理解为层,手动将游戏中的场景分层。每个游戏场景里可以有很多层,每一层都有单一的职责。比如有的层专门负责背景,有的层专门负责显示道具,有的层专门显示UI等。通过层和层的关系,我们可以更加方便的控制和显示各种界面,为了能够看到每一层上面的东西,所以层一般都是透明的,当然,有可以使用CCColorLayer来创建有背景色得层。
CCLayer可用于容纳其他CCNode节点,实现单点触摸,多点触摸和重力感应回调等。
virtual void onEnter ()// 进入时的回调函数virtual void onExit ()// 离开时的回调函数virtual void onEnterTransitionDidFinish ()// 进入后的回调函数virtual bool ccTouchBegan (CCTouch *pTouch, CCEvent *pEvent)// 单点触屏事件virtual void ccTouchesBegan (CCSet *pTouches, CCEvent *pEvent)// 多点触屏事件virtual void ccTouchesMoved (CCSet *pTouches, CCEvent *pEvent)// 在触摸屏幕移动事件virtual void ccTouchesEnded (CCSet *pTouches, CCEvent *pEvent)// 触摸屏幕移动时间结束virtual void ccTouchesCancelled (CCSet *pTouches, CCEvent *pEvent)// 触屏事件取消virtual void didAccelerate(CCAcceleration* pAccelerationValue);// 重力感应事件// ...
演员 - CCSprite
继承自CCNode,是一幅2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建。
CCSprite是整个游戏开发过程中处理的重要对象,大到主角、BOSS,小到天边飘过的一朵云,大多都是通过CCSprite来实现的。
动作 - CCAction
只要是CCNode的子类就可以通过CCAction实现动作。
CCAction类别繁多,将在接下来的学习笔记中详细介绍。
- Cocos2d-x学习笔记(二)Cocos2d-x整体框架
- Cocos2d-x学习之 整体框架描述
- 【cocos2d-x】整体框架描述
- Cocos2D-X学习笔记(二)
- cocos2d-x+cocosbuilder 学习笔记 (二)
- Cocos2d-x学习笔记(二)
- Cocos2d-x学习笔记(二)------HelloWorld
- cocos2d-x Physics 学习笔记(二)
- Cocos2d-x学习笔记(二)——Cocos2d的基本框架认识
- [Cocos2d-x开发问题-4] Cocos2d-x整体框架描述
- (转载)Cocos2d-x学习之 整体框架描述
- (转)Cocos2d-x学习之 整体框架描述
- cocos2d-x源码剖析之整体框架
- 【cocos2d-x】cocos2d-x学习笔记之一
- [Cocos2d-x]Cocos2d-x 3.2 学习笔记
- [Cocos2d-x]Cocos2d-x 3.2 学习笔记
- Cocos2d-x 学习笔记
- Cocos2d-x学习笔记
- 7.1.2 C++关键字 const
- MySql主从不同步,解决方法
- Apache Mina 学习笔记(1) - 入门
- 跟我学jquery(一)初体验jquery
- linux 下内存泄露检测工具valgrind的使用
- Cocos2d-x学习笔记(二)Cocos2d-x整体框架
- Longest Common Prefix
- java strictfp
- 学jquery(二)大话jquery选择器
- Integer to Roman
- 学jquery(三)jquery动态创建元素和常用函数示例
- switch case
- 用 SQLite 和 FMDB 替代 Core Data
- Haskell99题答案