一。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角色。

最新文章

  1. C#设计模式-享元模式
  2. 在Window的IIS中创建FTP的Site并用C#进行文件的上传下载
  3. Python开发【第三章】:Python编码转换
  4. jquery之 off()方法
  5. ThinkPHP中的视图
  6. Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台
  7. LAMP 环境搭建之源码包编译安装
  8. hdu1588之经典矩阵乘法
  9. BZOJ 1800 fly-飞行棋
  10. url参数中出现+、空格、=、%、&、#等字符的解决办法
  11. html5+ XMLHttpRequest
  12. 关于Oracle使用管理员账号登录失败的问题
  13. ivew Tooltip
  14. Android adb from work ---three
  15. 工作流管库的bpmn部署在数据库中
  16. 去除HTML5 SUMMARY 标签前的三角形
  17. for循环案例
  18. 洛谷U19464 山村游历(Wander)(LCT)
  19. <offer4> 04_FindInPartiallySortedMatrix
  20. day2-Iptables笔记

热门文章

  1. Linux(Ubuntu)下搭建ASP.NET Core环境
  2. SharePoint 2013 网站迁移流程
  3. BootStrap中按钮点击后被禁用按钮的最佳实现方法
  4. MathType使用中的四个小技巧
  5. MQTT--单片机实现即时通信
  6. Android 使用ListView显示信息列表
  7. Spring事务核心接口
  8. adb shell dumpsys的用法
  9. JZOJ.5328【NOIP2017模拟8.22】世界线
  10. Java初学者笔记一:元类、获取类型、枚举