重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27689713
郝萌主友情提示:
人是习惯的产物,当你习惯快乐时,记忆里的不愉快就消失了。
游戏開始之前
经过之前的学习,我们已经能够开发一个最主要的 Cocos2d-x 游戏了,这个游戏包含一张背景图片和一个退出游戏的按 钮,可是这距离完毕一个完整、有用的游戏还非常遥远。

在这一章节中,我们将首先抛开 Cocos2d,介绍游戏开发的基本概念,

然后结合 Cocos2d-x 的特点。介绍一些 Cocos2d-x 开发的基础知识。尽管这里没有解说游戏开发的详细方法,会略为枯燥,但介绍的都是 Cocos2d-x 开发所必须理解的基础知识。

基本概念
若要进行游戏开发,首先要理解游戏的基本原理以及元素组成。

在这一节中。我们将介绍游戏中的基本概念,包含游戏流

程控制、场景、层和精灵等。

场景与流程控制
我相信大家都接触过很多不同类型的游戏,而面对大多数游戏。玩家差点儿不须要学习就能够開始玩游戏。由于它们都有例如以下流程:
进入游戏,显示游戏主菜单;
选择新游戏,開始教学任务或是第一个关卡;
选择加载游戏,继续曾经的游戏;
选择设置。调整游戏的听觉或视觉效果等。
以找小三为例。假设把它的流程画成图,就能够得到以下的找小三的流程图。通过这个流程图。我们就能够对游戏的流 程有一个更清晰的认识。
在图中,每个节点中显示的内容相对不变。通常。我们把这些内容相对不变的游戏元素集合称作场景(scene),把游戏在场景之间切换的过程叫做流程控制(flow control)。
在 Cocos2d-x 3.0中,场景的实现是 Scene。
层是隶属于场景之下的游戏元素。通常。一个复杂场景会拥有多个层,一个层会显示一部分视觉元素,空白部分为透明或半透明。以实现多个层的重叠显示。

层与层之间依照顺序叠放在一起。就组成了一个复杂的场景。或许读者接触过图片编

辑器(如 Photoshop)或者动画编辑器(如 Adobe Flash?)。在这些编辑器中也存在层的概念。

在游戏设计中。层的概念

与它们类似。

以找小三的游戏场景为例,场景能够大致分为 4 层。
背景层:背景图片。
菜单层:悬浮于最上方的各种菜单项。
触摸层:处理在屏幕上的触摸、滑动画面等。
动作层:使用技能等,并处理触摸。 
如图所看到的, 我们看到的是 《找小三》 的主菜单场景和游戏场景的分层示意图。
当中包含背景层,和button触摸层;
相同游戏层也是如此,包含可拖动背景层。button层,道具层等;
在 Cocos2d-x 3.0中。 层的实现是 Layer。
精灵
层和场景是其它游戏元素的容器。假设没有向它们加入可见的游戏元素。它们看起来就一直是透明的。

精灵则与层或场景

不同,它隶属于层,是场景中出现的可见图形。玩家控制的主角、AI 控制的 NPC。以及地图上的宝箱、石块。甚至游戏主菜单的背景图片都是精灵。

因此,能够这样觉得。玩家看到的一切差点儿都是由精灵构成的。

精灵不一定是静态的。通常,一个精灵能够不断变化,变化的方式包含:移动、旋转、缩放、变形、显现消失、动画效果(类似 GIF 动画)等。精灵依照层次结构组合起来,并与玩家互动,构成了一个完整的游戏。
以《找小三》的游戏场景为例,我们选择游戏动作层。当中包括的主要精灵如图所看到的。
节点与渲染树
我们已经知道了精灵、层和场景怎样构成一个游戏的框架。

精灵属于层。层属于场景,玩家与精灵互动,

并导致游戏画面在不同场景中切换。把每一个环节拼接在一起,我们得到了一个完整的关系图。
以《找小三》的游戏场景的简化版为例,各个游戏元素依照图所看到的的方式组织在一起。
从组织关系的角度来说,游戏元素依照图中的树形结构组织起来;而从画图的角度来说。图形依照自上而下的顺序绘
制出来。为了绘制场景,须要绘制场景中的层,为了绘制层,须要绘制层中的精灵。因此,关系图实质上安排了图元的绘图方式,关系图中的每个元素称作节点(node),关系图则称作渲染树(rendering tree)。渲染场景的过程就是遍历渲染树的过程。
一旦建立起渲染树,组织复杂的场景就变得十分简单。我们赋予每一个节点一系列属性,包含节点相对于父节点的位置、旋转角度、缩放比例和变形參数等。

渲染树的优势在于,我们仅仅须要考虑节点相对于父节点的属性,就能够逐层创建复杂的

对象或动作。

举一个简单的样例是《找小三》中的背景动画中。时光穿梭。地球在不停的转动着。树木楼房也在转动着。
因此,能够建立一个节点表示背景,再建立 2个精灵分别表示主角和地球。

这样,每一个动作都是可控的,仅仅

要为每一个精灵设置好了动作。就能够完毕复杂的动画。

反之。假设没有树型结构,组织一个略微复杂的游动都会成为一个

巨大的project。

Cocos2d 也採用了渲染树架构。

不论什么可见的游戏元素都派生自 Cocos2d-x 节点 (Node) , 常见的游戏元素有场景 (Scene) 、

层(Layer)和精灵(Sprite)等。

前面提到过,通常游戏依照场景、层、精灵的层次顺序组织,每种节点都有各自的

特点。

然而在实际开发中,为了实现一些特殊的效果,也不必拘泥于这个层次顺序。层或精灵都是普通的节点,因此,即

使向精灵中加入精灵,向场景中加入精灵,甚至向精灵中加入层。这些操作也都没有被禁止。在读者觉得必要时,能够自己尝试各种组织层次。

动作与动画
动作(action)作用于游戏元素,能够使游戏元素运动起来。常见的动作有移动、转动、闪烁、消失等。

动作分为持续性

动作与瞬时动作。持续性动作在一段时间内连续完毕。瞬时动作会瞬间完毕。

为了使游戏画面动起来。我们会在须要的时

候创建一系列动作。并把它们应用到游戏元素中。

在 Cocos2d-x 中,动作由 Action 类实现。由 Action 类派生出持续性动作类ActionInterval 和瞬时动作类 ActionInstant。全部的动作都派生自以上两个类之中的一个。
动画(animation)是一种特殊的持续性动作,它仅仅能应用于精灵上,用于实现帧动画效果。如同电影胶片一样,一个帧动画由多张精巧的图片不停地切换形成。

精巧的图片叫做帧(frame)。帧的序列代表一个动画效果。

比如,《找小三》游戏中。地球在不停的转动着,距离产生美,还能产生小三,所以主角在不停的走动寻找着,显得格外真实。
在 Cocos2d-x 中。我们能够使用多个帧创建帧动画序列(Animation),并用帧动画序列创建可作用于精灵的帧动画(Animate)。

6、Cocos2dx 3.0游戏开发找小三之游戏的基本概念相关推荐

  1. 19、Cocos2dx 3.0游戏开发找小三之Action:流动的水没有形状,漂流的风找不到踪迹、、、...

    重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30478985 流动的水没有形状,漂流的风找不到踪迹.. ...

  2. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27691337 Cocos2d-x代码风格 前面我们已 ...

  3. 4、Cocos2dx 3.0游戏开发找小三之Hello World 分析

    尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27186557 Hello World 分析 打开新 ...

  4. 18、Cocos2dx 3.0游戏开发找小三之cocos2d-x,请问你是怎么调度的咩

    重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30478251 Cocos2d 的一大特色就是提供了事件 ...

  5. 15、Cocos2dx 3.0游戏开发找小三之Sprite:每一个精灵都是上辈子折翼的天使

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30475395 Sprite  Sprite 能够说是 ...

  6. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37596763 网格动作类似于动作特效,能够实现翻转. ...

  7. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  8. python游戏开发引擎_你的游戏开发第0课

    电子游戏是许多人喜爱甚至沉迷的事情.尤其对于程序员来说,开发游戏是不少人最初学习编程的动力.在之前,我发过一些游戏开发的教程和案例: 爆款游戏<贪吃蛇大作战>的 Python 实现 如何用 ...

  9. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9313239 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. teechart属性和方法
  2. 响应式开发一招致胜 学习视频 分享
  3. 小学生python-小学生学python(三)
  4. implicit assignment of unexported field
  5. 三维动画制作的基本流程
  6. Git 仓库设置记住密码
  7. 嫦娥五号完美落月,背后黑科技令人惊叹
  8. java造型_java造型_java向上造型有什么作用为什么要造型有什么效果_彩妆阁
  9. python类中包含一个特殊的变量、它可以访问类的成员_Python 类的特殊成员介绍...
  10. 不支持给定路径的格式_剑指offer_12_矩阵中的路径
  11. Spring ActiveMQ示例(第2部分)
  12. java 序列化 学习
  13. wordpress模板
  14. Java单元测试用例的编写
  15. 使用M0 DesignStart 的样例SoC(example system) - 4 FPGA原型验证
  16. Python爬虫入门【8】: 蜂鸟网图片爬取之三
  17. C#情怀与未来,怨天尤人还是抓住机会,能否跟上dnc新时代浪潮?
  18. 运维必备的DevOps工具链大盘点
  19. 用电脑无线投屏到电视屏幕的连接方法
  20. 第一次登上CSDN的博客

热门文章

  1. 全面超越人类!Google称霸SQuAD,BERT横扫11大NLP测试
  2. 丰田要建专属自动驾驶测试场,再也不用共享了
  3. AI研发新药真有那么神?可能哈佛、斯坦福和阿斯利康实验室都在吹牛
  4. 一次sendmsg的改造过程
  5. Android 性能优化工具 TraceView 简单使用
  6. 利用JS实现 TABLE的分页
  7. PHP计算字符串的个数
  8. varnish与squid的比较
  9. C++编程技术之 异常处理(上)
  10. RHEL 6 配置yum源