在Cocos2D-x引擎中,有几个非常重要的概念:导演(CCDirector)、摄像机(CCCamera)、场景(CCSecen)、布景(CCLayer)、精灵(CCSPrite)和动作(CCAction)。当看到这些概念,很容易联想到拍电影。我想Cocos2D在架构设计时,灵感恐怕正是来源于拍电影。我认为游戏除了需要与玩家交互外,和动画、电影制作具有很多相似的元素。

以下分别描述这些概念:

   ·导演(CCDirector):导演是整个游戏的组织和控制核心。导演可以制定游戏的运行规则,从而让游戏内的场景、布景和精灵有序地进行。游戏中一般只有一个导演。

·摄像机(CCCamera):将游戏中的场景、布景以及精灵等,进行图形渲染后,并把画面呈现给玩家。

·场景(CCSecen):场景就是一个游戏关卡或游戏界面。一个个场景通过场景切换就组成了整个游戏。它是构成游戏的静态元素。

·布景(CCLayer):布景是场景里的背景。一个场景可以由多个布景层组成,每个布景层负责某一方面背景。如一个游戏场景的布景可能有精灵、地图、UI界面等。

·精灵(CCSprite):游戏中精灵包括玩家控制的主角、敌人、NPC和机关等。它是构成游戏的关键元素。

·动作(CCAction):游戏中精灵的活动和状态变化。它是构成游戏动态元素。

这些概念是如何关联起来的呢?下面给出拍电影与Cocos2D-x的概念之间的层次关系图,如下:

       类比拍电影的层次关系是不是很容易理解Cocos2D-x的概念以及之间的关联呀?为了加深理解,我用文字描述方式将这些概念与基于Cocos2D-x游戏开发融合在一起,也为下一节介绍Cocos2D-x应用程序基本框架作铺垫。
 
   第一步,无论开发什么类型的游戏,至少要有一个导演(CCDirector)。它负责制定游戏规则,渲染场景以及控制游戏场景切换等。某些复杂游戏,可能存在多个导演。
   第二步,根据游戏的需要申请场景(CCScene),每一个场景代表一个游戏显示界面;需要将这些场景(CCScene)添加到导演(CCDirector)中,让其能够根据规则控制场景渲染和切换。
   第三步,为上一步的场景(CCScene)添加布景层(CCLayer),一个场景可以有多层布景。各层布景一般负责一项背景,如背景音乐、建筑、地图等。
   第四步,为上一步的布景(CCLayer)添加精灵(CCSprite),以丰富布景的内容。精灵可能是游戏中的玩家操作角色、敌人、NPC等。
   第五步,为上一步的精灵(CCSprite)添加各种动作(CCAction),包括移动、旋转、特效和动画等,让游戏具有动态感。
   至此,整个游戏制作准备工作就完成了,接着导演喊一声Action,游戏就启动了。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

注:本人在本博客的原创文章采用创作共用版权协议http://creativecommons.org/licenses/by-nc-sa/2.5/cn/), 要求署名、非商业用途和保持一致。要求署名包含注明我的网名及文章来源(我的博客地址:http://www.cnblogs.com/binbingg)。

[原创]cocos2d-x研习录-第二阶 基本概念的更多相关文章

  1. [原创]cocos2d-x研习录-第二阶 基本框架

    了解完Cocos2D-x的基本概念和概念类之后,是不是有一种蠢蠢欲动的冲动,想要探究Cocos2D-x是如何完成这一切的.接着我将通过对Cocos2D-x自代的HelloCpp项目进行分析,初步了解C ...

  2. [原创]cocos2d-x研习录-第二阶 概念类之导演类(CCDirector)

    CCDirector类是游戏的组织和控制中心(总指挥),它控制着主屏幕的显示.场景的切换和显示,以及游戏的开始.结束和暂停.它的继承关系图如下:    CCDirector继承自基类CCObject, ...

  3. [原创]cocos2d-x研习录-第二阶 概念类之节点类(CCNode)

    节点类CCNode在基本概念中并不存在,它是为了建立基本概念之间的关联关系而抽象出来的中间辅助类.这个类在Cocos2D-x中极为重要,它为概念类之间搭建了一座宏伟的桥梁.它的继承关系图如下:     ...

  4. [原创]cocos2d-x研习录-第二阶 概念类之摄相机类(CCCamera)

    在Cocos2D-x中,每个CCNode都拥有一个摄像机类CCCamera.只有通过CCCamera,CCNode才会被渲染出来.当CCNode发生缩放.旋转和位置变化时,都需要覆盖CCCamera, ...

  5. [原创]cocos2d-x研习录-第二阶 概念类之精灵类(CCSprite)

    上一节说布景层CCLayer是小容器,那么精灵类CCSprite就是容器添加的内容,它是构成游戏的主要元素.精灵这个名称应该是游戏专用,它表示游戏中玩家操作的主角.敌人.NPC(Non Player ...

  6. [原创]cocos2d-x研习录-第二阶 概念类之布场层类(CCLayer)

    上面说场景CCScene相当于一个大容器,那么布景层类CCLayer就是大容器里的若干个小容器.每个游戏场景CCScene会有很多层CCLayer,每一层CCLayer负责各自的任务.看一下CCLay ...

  7. [原创]cocos2d-x研习录-第二阶 概念类之场景类(CCScene)

    场景类CCScene是Cocos2D-x在屏幕显示的内容,相当于游戏关卡或界面.CCDirector任何时候只能显示一个场景CCScene,游戏中可能存在若干场景,CCDirector通过场景切换达到 ...

  8. [原创]cocos2d-x研习录—前言

    我认为很多开发者面对层出不穷的新技术.新思想和新理念,最为之苦恼的是找不到行之有效的学习方法,对于知识的本质缺乏认识,虽阅读了大量教材,却无法将其融入自己的知识体系,并搭建自己的知识树.不可否认,教材 ...

  9. [原创]cocos2d-x研习录-第一阶 背景介绍 之 cocos2d家族史

    Cocos2D是一个2D开源游戏引擎,它最早是由Ricardo Quesada(阿根廷人,社区简称Riq)和他的朋友们用Python开发的,用于开发2D游戏和基于2D图形的任何应用.最早引擎的名字源自 ...

随机推荐

  1. mac 安装tomcat

    一.下载 首先在tomcat官网下载完整版的 tomcat.tar.gz包,Core下 注: zip用于windows操作系统,tar.gz用于unix和linux操作系统. Binary Distr ...

  2. Loom工具使用分享

    Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享 时间 2014-03-09 11:04:04  ITeye-博客 原文  http://dsqiu.it ...

  3. C++ Primer 第九章 顺序容器

    由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证. 1.顺序容器类型:vector.deque.list.forword_list.array.string. 2.顺序容 ...

  4. b.Connector配置解析

    前面讲解到Tomcat中使用Digester框架进行server.xml到javaBean对象的映射,这篇文章以Connector的SSL通道为例,来讲解Connector的属性是如何注入的. 先看一 ...

  5. Java 编程入门(词汇表)

    抽象类(abstract class):抽象类不能创建对象,主要用来创建子类.Java中的抽象类使用 abstract 修饰符定义. 抽象数据类型(abstract data type ADT):抽象 ...

  6. C#关于导出excel的方法

    一说到导出excel可能很多人都会觉得说直接利用npoi 导入导出excel格式的文件,那样非常方便,但是可能有些时候有的浏览器不支持,那么该怎么办呢,现在介绍一种纯C#的导出excel的方法,代码如 ...

  7. 一些常用的方法(1)--去除DataTable中的重复数据

    private DataTable Display(DataTable dtSource)        {            DataTable dtTemp = dtSource.Copy() ...

  8. HDU 1372 Knight Moves

    最近在学习广搜  这道题同样是一道简单广搜题=0= 题意:(百度复制粘贴0.0) 题意:给出骑士的骑士位置和目标位置,计算骑士要走多少步 思路:首先要做这道题必须要理解国际象棋中骑士的走法,国际象棋中 ...

  9. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  10. 【USB多路电源】---需求分析方案制定

    需求描述: USB接口输入5V,分别输出±5V,100mA; 3.3V,100mA: 1.2V,500mA:四路电源.同时可给锂电池充电,在移除USB输入时锂电池能供电. 分析: 首先考虑需要一个充电 ...