一。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的更多相关文章

  1. cocod2d-x 之 CCDirector、CCScene、CCSprite

    CCDirector是控制游戏流程的主要组件. typedef enum { /// sets a 2D projection (orthogonal projection)2D投机模式 kCCDir ...

  2. 整理Cocos2d-x 面试题解

    昨天听了腾讯2015校招的在线宣讲会,看到了游戏技术大拿Steven,他总结了需要的达人得爱技术,能坚持,够挑剔.马上校招了,加油吧,骚年~ 网上关于cocos2d-x的面试题比较少,这里搜集和整理了 ...

  3. 简单的cocos2dx笔试题

    1.参数传递有几种方式?值传递.指针传递.引用传递 2.指针和引用有什么分别:如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗? 1.指针是一个变量,存储一个地址,指向内存的一个存储单元: ...

  4. cocos2d-x CCScrollView和CCTableView的使用(转载)

    转载请注明来自:Alex Zhou的程序世界,本文链接:http://codingnow.cn/cocos2d-x/1024.html //============================== ...

  5. [Cocos2d-x For WP8]ActionManager动作管理

    在Cocos2d-x里面可以通过CCActionManger类来管理动作的暂停和恢复,CCActionMessage是管理所有Action的单例,一般情况下并不直接使用这个单例,而是使用CCNode的 ...

  6. [Cocos2d-x For WP8]Transition 场景切换

    在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在Cocos2d-x中是由CCScene类表示一个场景.那么场景(CCScene)是为游戏中的精灵(CCSprite)提供了舞台,场 ...

  7. cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案

    游戏暂停界面: cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动 ...

  8. cocos2d-x ScrollView、TableView

    转自:http://codingnow.cn/cocos2d-x/1024.html 在游戏和应用中经常要实现左右滑动展示游戏帮助.以列表显示内容的UI效果,就像android中的Gallery和Li ...

  9. cocos2d的框架思路

    这是我第一次写cocos的框架思路哈,虽然只是写完了一个程序,按理来说应该再多写一些,多积累一些经验了再来写这个框架的构成,但是我觉得还是把我这次写代码的所有想法先记下来哈,等到以后继续写cocos的 ...

随机推荐

  1. HTML input只能输入数字

    onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" onafterpaste="this.value=this.v ...

  2. 消息中间件-ActiveMQ入门实例

    1.下载ActiveMQ: http://activemq.apache.org/download-archives.html 2.运行ActiveMQ 解压缩apache-activemq-5.5. ...

  3. SQL-字符串连接聚合函数

    原文:http://blog.csdn.net/java85140031/article/details/6820699 问题: userId  role_name         role_id 1 ...

  4. mysql触发器使用方法具体解释

    MySQL触发器语法具体解释: 触发器 trigger是一种特殊的存储过程.他在插入(inset).删除(delete)或改动(update)特定表中的数据时触发运行,它比数据本身标准的功能更精细和更 ...

  5. Windows10下安装python(配置环境变量)

    从官网下载Windows下的python版本,一路按照默认进行安装. 安装之后配置环境变量的步骤如下: 1,点“我的电脑”,右键选“属性”. 2,选择“高级系统设置”--->选“环境变量”--- ...

  6. 用Broadcast Receiver刷新数据(二)

    采用消息发布/订阅的一个很大的优点就是代码的简洁性,并且能够有效地降低消息发布者和订阅者之间的耦合度.举个例子,比如有两个界面,ActivityA和ActivityB,从ActivityA界面跳转到A ...

  7. 更改嵌入式Linux中开机画面----左上角小企鹅图标

    一直想给嵌入式仪表加个开机LOGO,但是没有找到更换的方法.最近在网上收集了一些文章,整理一下一共自己参考.目前也还没有试过这种方法究竟是否可以.但察看Kernel源代码可以知道,Linux-2.6的 ...

  8. vs2008设置dll、lib库的输出路径

    vs2008中,有些项目上的功能是要生产库文件给其他项目调用的,以下是一些设置库文件(x.dll和x.lib)输出路径的方法. 设置x.dll 输出路径方法是在右键项目的"属性"- ...

  9. springdata----->spring集成redis(一)

    使用spring-data-redis与redis集成,今天我们就通过例子来学习一下.当时间和耐心都已经变为奢侈,我们只能靠星座了解彼此. spring与redis集成的实例 注意:这里我们测试的是安 ...

  10. ACM中Java高效输入输出封装

    来自互联网 : 既高效又好用才是王道! import java.io.IOException; import java.io.FileInputStream; import java.io.Input ...