在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. mysql中Timestamp,time,datetime 区别

    一.TIMESTAMP[(M)] 时间戳.范围是’1970-01-01 00:00:00’到2037年. TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间. 如果你不分配一个值, ...

  2. SPI总线(同步)

    一.SPI总线简介 串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口.SPI 用 于CPU与各种外围器件进行全双工. ...

  3. GeoHash

    查找是我们经常会碰到的问题,以前我做过一个这样的算法,在有序的数列(80万条左右),这批数据是根据维度由小到大排序的,寻找已知数据的位置,并且所相应的运算,由于这个算法要在嵌入式系统中做,如果一次在内 ...

  4. 001_kafka起步

    一.简介 Kafka is a distributed, partitioned, replicated commit log service. It provides the functionali ...

  5. Selenium操作页面元素

    转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html 一.输入框(text field or textarea) //找到输入框元素: Web ...

  6. ring0

    Intel的x86处理器是通过Ring级别来进行访问控制的,级别共分4层,RING0,RING1,RING2,RING3.Windows只使用其中的两个级别RING0和RING3. RING0层拥有最 ...

  7. Visual Studio 如何恢复默认设置

    我们在使用 Visual Studio 的时候,常常有一些窗口不见了又弄不回来的情况,如何恢复默认设置呢? 1.点击“开始-->程序-->Microsoft Visual Studio20 ...

  8. 树(一)——线段树

    问题 现在有1~30这30个数,数N被抽上的概率正比于1/sqrt(N+1),求满足这个概率分布的随机数发生器. 思路 第一,如何解决这个"概率正比"问题. 第二,如何产生满足条件 ...

  9. iOS开发UI篇—无限轮播(功能完善)

    iOS开发UI篇—无限轮播(功能完善) 一.自动滚动 添加并设置一个定时器,每个2.0秒,就跳转到下一条. 获取当前正在展示的位置. [self addNSTimer]; } -(void)addNS ...

  10. linux 实战使用,上传git 解决冲突

    Last login: Fri Dec 18 09:48:55 on ttys000lidongxiaodeiMac:~ lidongxiao$ cd /Users/lidongxiao/Docume ...