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的 ...
随机推荐
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码.fileC ...
- php把时间戳转换成英文格式
<?php echo "时间格式1:".date("Y-m-d H:i:s ")."<br>";// 2010-06-12 ...
- 创建并调用 DLL(1)
//通过 DLL Wizard 建立: library TestDLL; uses SysUtils, Classes, Dialogs; {$R *.res} //建立过程 proced ...
- 怎样批量修改MathType公式格式
MathType是一款数学公式编辑器,我们在写论文的时候常常会遇到,但是有时由于公式的样式.大小和间隔等不符合论文要求,这个时候我们如果一个个修改是很麻烦的,还容易出错.所以批量修改就非常的有必要了, ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)
题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
- mysql 小数处理
1)四舍五入,保留小数 使用ROUND函数(注意不要使用FORMAT函数,FORMAT函数返回值带有逗号,赋值时会出现错误) 示例:保留两位小数 ROUND(price,2) 2)向上取整 CEIL ...
- 《C++ Primer Plus》第14章 C++中的代码重用 学习笔记
C++提供了集中重用代码的手段.第13章介绍的共有继承能够建立is-a关系,这样派生类可以重用基类的代码.私有继承和保护继承也使得能够重用基类的代码,单建立的是has-a关系.使用私有继承时,积累的公 ...
- 学习JQuery - 10
第四章 Styling and Animating 1. 使用内联属性修改CSS 我们知道HTML在onload时会读取css的各项值. 那么,我们能不能在之后的操作中改变css值呢? 答案是肯定的! ...
- 【BZOJ3003】LED BFS+状压DP
[BZOJ3003]LED Description LED屏是由一个庞大的点阵小灯泡组成的,一开始每个小灯泡都不发光.每一行一共有N个小灯泡,依次标号为1~n.现在给定K个点,要求这K个点发光,其余点 ...
- 【BZOJ2661】[BeiJing wc2012]连连看 最大费用流
[BZOJ2661][BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给 ...