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的 ...
随机推荐
- 记录下Lambda常用的表现形式
纯粹记录下Lambda的表现形式: (x, y) => x * y;//多参数,隐式类型=>表达式 x => x * ;//单参数,隐式类型=>表达式 x => { ; ...
- LazyValue<T>
public void ExtendFuncT() { //():匿名无参方法.() =>方法名,指派匿名无参方法去执行另外一个方法. LazyValue<int> lazyOne ...
- Java架构学习 转(Spring+SpringMVC+MyBatis+easyUI)
Spring+SpringMVC+MyBatis+easyUI : http://www.cnblogs.com/han-1034683568/p/6730869.html
- 【RF库Collections测试】Dictionary Should Not Contain Value
Name:Dictionary Should Not Contain ValueSource:Collections <test library>Arguments:[ dictionar ...
- python常用BIF汇总
append():在列表末尾增加一个数据项:例如a.append('hello') pop():用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值:例如a.pop() extend(): ...
- CMake添加debug版本后缀
- linux系统UDP的socket通信编程
发送方: /* * File: main.c * Author: tianshuai * * Created on 2011年11月29日, 下午10:34 * * 主要实现:发送20个文本消息,然后 ...
- Solr4.0+IKAnalyzer中文分词安装
1.依赖: JDK1.6,Tomcat 5.5,Solr 4.0.0,IKAnalyzer 2012FF Tomcat虽然不是必须,但觉得上生产环境的话,还是得用Tomcat,便于统一管理和监控. T ...
- (三)微信小程序之发送服务通知(模板消息)
1.后端获取AccessToken返回给微信端 微信小程序端请求后端得到AccessToken 2.后端获取openid返回给微信端 微信小程序端登录请求后端得到openid 3.发送消息 ...
- 为什么使用eval()将json字符串转换为对象要多加一个小括号
使用eval()将json字符串转换为对象要多加一个小括号: 关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval ...