1、导演类
Director类负责控制整个游戏并通知游戏接下来需要做什么
Director类最常见的作用就是控制Scene切换场景和切换时的动画效果
Director类是一个共享的单例对象,可以从代码的任意地方调用
2、通常的游戏流程:
3、场景
一个场景相当于一个页面,每一个独立的主界面都是一个场景
场景由Renderer(渲染器)进行绘制。Renderer可以用来绘制精灵或者其他对象到场景中
4、场景图(_Scene graph_)
a、 _Scene graph_ 是用来储存场景中所包含的图形对象数据的数据结构。
b、_Scene graph_ 对象与Scene 对象一一对应。
c、 _Scene graph_ 是树形结构
d、向场景中添加精灵或者其他动画实际上就是添加节点到_Scene graph_中
e、场景图绘制的顺序是根、左、右,由于最右边的节点最先绘制,所以最右边的节点会显示在场景的顶层
f、_z-order_z值为负数的节点会出现在_Scene graph_ 树的左侧,_z-order_z值为正数的节点会出现在_Scene graph_ 树的右侧
g、cocos2dx中可以通过addChild方法来向Scene中添加节点,由此构建Scene的_Scene graph_ ,如:
scene->addChild(label_node);
scene->addChild(title_node,-2); //指定_z-order_z值
5、精灵类
a、精灵是在游戏场景中可以进行移动的对象,可以被玩家操控。
b、同一个图形对象,当对其进行操作的时候,它就是一个精灵。没有操作它的时候,它就是_Scene graph_ 里的一个普通Node。
c、_Sprites_ 精灵由图片创建而来,有坐标(Position)、翻转(rotation)、缩放(scale)、透明度(opacity)、颜色(color)等属性。如:
auto myspite=Sprite::create("mysprite.png");
myspite->setPosition(vec2(500,0));
myspite->setRotation(40);
等...
d、Sprite是Node的子类。所有Node类有一个“锚点”的属性,锚点是对精灵进行定位的基准点。例如,
通过mySprite->setAchorVec2(0,0);将精灵的锚点设置为(0,0),那么使用代码setPosition设置精灵位置的时候,设置的坐标值实际上是精灵极左下方点的坐标值。
6、动作
a、_Actions_动作类可以让Node对象按照时间顺序运动。我们可以在指定的时间内将一个Sprite对象从一个坐标点移动的另一个坐标点并在结束的时候调用回调函数。
b、可以通过改变Node的属性(坐标,翻转等)来定义动作,然后将这些动作放置到一个序列对象(Sequence)中并按顺序在一定时间段内执行。
7、序列和批量
a、一个序列就是多个动作按顺序组织的一个排列。cocos2dx还支持反向播放一个序列。
b、批量(Spawns)支持同时执行多个动作(例如边跳舞边移动)。放置在Spawns里面的所有动作将在Spawns播放函数调用时同时开始。
7、关于继承的问题
如果一个Sprite(B)继承自另一个Sprite(A),那么对A的操作也将映射到B上。例如,将A旋转90度,B也会自动跟着旋转90度。