CCScene,CCLayer,CCSprite,CCDirector
一。CCScene : 游戏中不同的画面可以用不同的场景展示出来,大致的可以分为以下的几类场景:
1. 展示类场景。游戏开场画面,游戏简介,胜利以及失败提示,帮助。
2. 选择类场景。主菜单,游戏设置,关卡选择,游戏控制参数等。
3. 游戏场景。游戏不同背景的切换。
二。CCLayer : 游戏中不同的场景又可以由多个层叠加组合,比如主菜单画面由三个层叠加实现:
1. 编号为1的背景图像(background layer)在最底层。
2. 编号为2的运动层(animation layer)在中间。
3. 编号为3的菜单选项(menu layer)在最外层。
层的事件相应机制 : 最外层最先接受到事件(屏幕触碰),最后是底层,如果在某层处理了该事件,则后面的层不会在接受到事件信号。
公用层 : 菜单层(menu layer), 颜色层(color layer), etc
1. ColorLayer 透明的,可以按照RGB设置填充颜色的层,可以通过setContentSize设置层大小,尺寸。
2. MenueItem功能:
i. 设置按钮的状态。
ii. 负责回调处理函数,内置 NSInvocation *invocation来实现回调函数激活。
o MenuItemLabel 内置label对象,将基本的Label转变成菜单项,增加选中时的文字放大效果。
o MenuItemAtlasFont 将LabelAtlas转变成菜单项,增加选中时的文字放大效果。
o MenuItemFont 创建直接设置字体的菜单项。
o MenuItemSprite 内置3个CocosNode对象,表示正常,禁止,选中三个状态的图像。
o MenueItemAtlasSprite 从MenuItemSprite派生,提供针对3个对象的操作。
o MenuItemImage 从MenuItemSprite派生,不支持禁止状态的设置。
o MenuItemToggle 支持内部MenuItem数组负责展示不同的状态,进而显示出来实现状态切换
每一层又可以包含很多的内容要素 : label, htmllabel, sprite, map, etc。主要功能:
1. 接受屏幕触摸(touch)操作输入。
2. 接收动力感知(accelerometer)输入。
三。CCSprite :精灵就是游戏中玩家或者系统控制的对象,及一个不断变化的图片。
1. 位置移动。
2. 选择。
3. 放大缩小。
4. 运动。
四。CCDirector : 导演对象是整个流程的代表,负责游戏过程中场景的切换。
导演只有一个(sigleton)。导演对象接受层对象/场景的要求,按照预先的流程来终止,停止,激活当前的场景,引导下一个场景。Director对象完成的两大类任务:
I. 设置主程序窗口的显示属性:
1. 设置主窗口的方向(垂直/水平)。
2. 设定director对象与当前窗口的关系,便于director操作主窗口。
3. 是否显示FPS(每秒显示的帧数)。
4. 设定游戏动画每秒显示帧数(默认60帧)。
5. 设定主窗口显示图像的调色盘位宽。
II. 管理,显示场景:
1. 当前正在显示的场景。 Scene *runningScene_;
2. 下一个将要显示场景。 Scene *NextScene;
3. 待执行场景队列。 NSMutableArray *sceneStack_;
4. 主程序启动,显示第一个场景。 (void) runWithScene: (Scene*)scene;
5. 传如场景设置为当前执行场景。 (void) pushScene: (Scene*)scene;
6. 执行待执行队列中最后一场景。 (void) popScene;
7. 用一个场景取代当前执行场景。 (void) replaceScene: (Scene*)scene;
8. 结束场景运行。 (void) end;
9. 暂停场景运行。 (void) pause;
10. 恢复场景运行。 (void) resume;
五。使用Scene的作用:
1. 作为某个场景的总体容器对象,包括所有的内容对象(菜单,状态,游戏角色,NPC)。层叠关系通过CocosNode 的 addChild的Z参数决定。
2. 实现场景切换的特殊效果。所有的场景切换特效都是从Scene的子类TransitionScene派生的。
六。使用layer的作用:
1. Touch事件处理。
2. 动力感知处理。
使用Sprite的作用: 展示静态图片。
使用AtlasSprite的作用: 展示游戏角色和NPC角色。
CCScene,CCLayer,CCSprite,CCDirector的更多相关文章
- cocod2d-x 之 CCDirector、CCScene、CCSprite
CCDirector是控制游戏流程的主要组件. typedef enum { /// sets a 2D projection (orthogonal projection)2D投机模式 kCCDir ...
- 整理Cocos2d-x 面试题解
昨天听了腾讯2015校招的在线宣讲会,看到了游戏技术大拿Steven,他总结了需要的达人得爱技术,能坚持,够挑剔.马上校招了,加油吧,骚年~ 网上关于cocos2d-x的面试题比较少,这里搜集和整理了 ...
- 简单的cocos2dx笔试题
1.参数传递有几种方式?值传递.指针传递.引用传递 2.指针和引用有什么分别:如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗? 1.指针是一个变量,存储一个地址,指向内存的一个存储单元: ...
- cocos2d-x CCScrollView和CCTableView的使用(转载)
转载请注明来自:Alex Zhou的程序世界,本文链接:http://codingnow.cn/cocos2d-x/1024.html //============================== ...
- [Cocos2d-x For WP8]ActionManager动作管理
在Cocos2d-x里面可以通过CCActionManger类来管理动作的暂停和恢复,CCActionMessage是管理所有Action的单例,一般情况下并不直接使用这个单例,而是使用CCNode的 ...
- [Cocos2d-x For WP8]Transition 场景切换
在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在Cocos2d-x中是由CCScene类表示一个场景.那么场景(CCScene)是为游戏中的精灵(CCSprite)提供了舞台,场 ...
- cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案
游戏暂停界面: cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动 ...
- cocos2d-x ScrollView、TableView
转自:http://codingnow.cn/cocos2d-x/1024.html 在游戏和应用中经常要实现左右滑动展示游戏帮助.以列表显示内容的UI效果,就像android中的Gallery和Li ...
- cocos2d的框架思路
这是我第一次写cocos的框架思路哈,虽然只是写完了一个程序,按理来说应该再多写一些,多积累一些经验了再来写这个框架的构成,但是我觉得还是把我这次写代码的所有想法先记下来哈,等到以后继续写cocos的 ...
随机推荐
- [转]NMON服务器监控、指标说明
一.NMON中的各项参数指标: SYS_SUMM:显示当前服务器的总体性能情况 Total System I/OStatistics:Avg tps during an interval:显示采集间隔 ...
- 在word文档中如何插入Mathtype公式
将mathtype公式插入到word文档中,是mathtype公式编辑器最基本的操作.当在Mathtype数学公式编辑器中编辑好公式之后,点击文件->更新XXX文档(XXX为当前编辑的word文 ...
- linux下mysql 启动命令
1,使用service 启动.关闭MySQL服务 service mysql start service mysql stop service mysql restart 运行上面命令,其实是serv ...
- Spring------Spring data jpa 定义实体类(@OneToMany等的使用)
转载: https://course.tianmaying.com/spring-data-jpa+one-to-many#2
- swift - UIPickerView 的使用
效果显示数下图: 1.初始化 pickerView.center = self.view.center //将dataSource设置成自己 pickerView.dataSource=self // ...
- Android代码调试报错
最近出现老代码不能运行的问题 Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowExc ...
- Oracle-未能加载文件或程序集“oracle.dataaccess”或它的某一个依赖项。试图加载格式不正确的程序。
未能加载文件或程序集“oracle.dataaccess”或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以 ...
- HttpPost导包遇到的问题
直接在当前项目 build.gradle文件修改如下 android { useLibrary 'org.apache.http.legacy' compileSdkVersion 24 buildT ...
- 微信小程序实现文字跑马灯
wxml: <view>1 显示完后再显示</view> <view class="example"> <view class=" ...
- PHP之变量
前面的话 变量是用于临时存储值的容器.这些值可以是数字.文本,或者复杂得多的排列组合.变量在任何编程语言中都居于核心地位,理解它们是使用php的关键所在.下面将详细介绍php中的变量 [注意]关于ja ...