【开发者指南】第二章:Cocos2d-x中的基础概念——学习笔记
2015-09-09 12:46
726 查看
*一个游戏引擎就是一个可以提供大多游戏常用功能的软件作品。你之前也许听到过将它称之为API或者框架。但在本书中我们会使用游戏引擎这个比较正式的术语。
通常游戏引擎中都包含这些组件,比如:渲染器,2d/3d图形,碰撞检测,物理引擎,声音,控制器,动画等。
*Cocos2d-x提供了
把你自己当成影片的监制人,你肯定会通知导演(
导演(
这里是一个典型游戏的流程图。导演 (
你该如何将这些内容单独的分开来呢?是的,这就需要
回想一下你喜欢的电影,你会发现它很显示的划分出了一些场景,或者单独的故事剧情。
如果我们按照这种思路来处理游戏,不管游戏有多么简单但我们应该想出至少有几个场景。
场景都由
_scene graph_由树节点构成。(它虽然叫screne graph,但它实际上是用树形结构来存储)。
由于_Scene Graph_是树形结构;你可以对它进行遍历。Cocos2d-x使用了_in-order walk_算法。_in-order walk算法的流程如图所示,从根节点开始,然后到右边的树。由于右边的节点是最后绘制的,所以它会首先被显示到场景中。
//这里有疑问;
_scene graph_很容易理解,让我们来对图中所示的场景进行分解:
将上面的场景表示为一个树形,可以简化为如下:
另一个需要注意的地方是,_z-order_Z轴为负数的元素会出现在树的左侧,而_z-order_Z轴为正数的会出现在树的右侧。
当在场景中添加结点的时候需要注意这一点。当然你可以在任意的地方添加节点元素它们会被按钮Z轴的大小自动排序。
在这个概念的基础上,我们可以把
先暂时不看上一个场景,来看一下_scene graph_如何利用_z轴_来布局
图中左边的场景是由许多节点对象组成的,但每个对象都处在不同的_z-order_Z轴上。
在Cocos2d-x中,可以通过API中的
_Sprites_精灵很容易创建,它具有很多属性,比如:坐标
通常游戏引擎中都包含这些组件,比如:渲染器,2d/3d图形,碰撞检测,物理引擎,声音,控制器,动画等。
*Cocos2d-x提供了
Scene,
Transition,
Sprite,
Menu,
Sprite3D,
Audio等许多对象。你创建游戏所需要的内容都在这了。
主要组件
*Cocos2d-x的核心类为Scene,
Node,
Sprite,
Menu和
Action对象。
导演类
Cocos2d-x使用Director(导演)的概念。是的,就像拍电影一样!
Director类控制着游戏整体并通知游戏接下来需要做什么。
把你自己当成影片的监制人,你肯定会通知导演(
Director)该如何做!
Director导演的一个通常作用是控制
Scene切换和切换效果。
导演(
Director)是一个共享的单例对象,你可以从代码的任何地方调用。
这里是一个典型游戏的流程图。导演 (
Director)通过这个流程图来对游戏进行调渡并决定了游戏的标准:
场景
游戏中你可能需要一个主菜单,几个关卡和一个结束场景。你该如何将这些内容单独的分开来呢?是的,这就需要
Scene。
回想一下你喜欢的电影,你会发现它很显示的划分出了一些场景,或者单独的故事剧情。
如果我们按照这种思路来处理游戏,不管游戏有多么简单但我们应该想出至少有几个场景。
场景都由
Renderer进行绘制。
Renderer可以用来绘制精灵或者其它对象到场景中。为了更好的理解这点我们需要了解一些关于_Scene Graph_的知识。
场景图
_scene graph_是一个用来存储场景图形的数据结构。_scene graph_由树节点构成。(它虽然叫screne graph,但它实际上是用树形结构来存储)。
由于_Scene Graph_是树形结构;你可以对它进行遍历。Cocos2d-x使用了_in-order walk_算法。_in-order walk算法的流程如图所示,从根节点开始,然后到右边的树。由于右边的节点是最后绘制的,所以它会首先被显示到场景中。
//这里有疑问;
_scene graph_很容易理解,让我们来对图中所示的场景进行分解:
将上面的场景表示为一个树形,可以简化为如下:
另一个需要注意的地方是,_z-order_Z轴为负数的元素会出现在树的左侧,而_z-order_Z轴为正数的会出现在树的右侧。
当在场景中添加结点的时候需要注意这一点。当然你可以在任意的地方添加节点元素它们会被按钮Z轴的大小自动排序。
在这个概念的基础上,我们可以把
Scene的视为一个
Node对象。
先暂时不看上一个场景,来看一下_scene graph_如何利用_z轴_来布局
Scene:
图中左边的场景是由许多节点对象组成的,但每个对象都处在不同的_z-order_Z轴上。
在Cocos2d-x中,可以通过API中的
addChild()方法来创建_scene graph_场景
精灵
精灵就是游戏中在场景里进行移动的对象。当你操纵一个精灵的时候,它就是一个精灵。如果你不对它进行操作,那它就是一个节点Node。
_Sprites_精灵很容易创建,它具有很多属性,比如:坐标
position,翻转
rotation,缩放
scale,透明度
opacity,颜色
color等。
相关文章推荐
- cocos2dx编程 之如何获取节点的中心点坐标
- cocos2d-x 3.x的底层渲染机制
- Cocos2d-x屏幕适配新解
- cocos2d文件打包步骤
- Cocos2d-x中使用Socket方法总结
- cocos2dx骨骼动画Armature源码剖析(一)
- cocos2dx骨骼动画Armature源码剖析(二)
- cocos2dx骨骼动画Armature源码剖析(三)
- cocos3.x更改layer,scene锚点
- cocos2D-x 学习之路(二)
- cocos2d界面渲染
- Cocos客户端如何连接服务器
- cocos2d-x 3.1.1 学习笔记[4]GridActions 网格动画
- cocos2d内存管理
- Cocos2dx之Box2D——刚体
- cocos2d js 使用 cocos studio 合图出现的黑线
- Userdefault在Mac下Xcode中的存储位置
- 关于cocos2d-x对etc1图片支持的分析
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十二节:换装系统
- cocos2d js 发布代码方法