Cocos2d-x学习笔记:完全掌握JS API与游戏项目开发 (未来书库,触控未来官方教材)
上QQ阅读APP看书,第一时间看更新

4.3 Cocos2d-x核心概念

Cocos2d-x中有很多概念,这些概念多来源于动画、动漫和电影等行业,例如导演、场景和层等概念。Cocos2d-x中的核心概念如下:


□导演

□场景

□层

□节点

□精灵

□菜单

□动作

□效果

□粒子运动

□地图

□物理引擎


本节介绍导演、场景和层概念以及对应的类。由于节点的概念很重要,我们会在这里详细介绍。其他的概念放在后面的章节中介绍。

4.3.1 导演

Cocos2d-x JS API中导演类cc.Director用于管理场景,采用单例设计模式,在整个工程中只有一个实例对象。单例模式能够保存一致的配置信息,便于管理场景对象。获得导演类Director实例语句如下:

    var director = cc.Director._getInstance();

也可以在程序中直接使用cc.director,该对象在框架内使用如下语句赋值:

    cc.director = cc.Director._getInstance();

所以cc.director是cc.Director的实例对象。

导演对象的职责如下:


□访问和改变场景。

□访问Cocos2d-x的配置信息。

□暂停、继续和停止游戏。

□转换坐标。


4.3.2 场景

Cocos2d-x JS API中的场景类cc.Scene是构成游戏的界面,类似于电影中的场景。场景大致可以分为以下几类:


□展示类场景:播放视频或在图像上输出文字,来实现游戏的开场介绍、成功和失败提示、帮助介绍等。

□选项类场景:主菜单、设置游戏参数等。

□游戏场景:这是游戏的主要内容。


场景类cc.Scene的类图如图示4-12所示。从类图可见,Scene继承了Node类,Node是一个重要的类,很多类都从Node类派生而来,其中有Scene、Layer等。

图4-12 cc.Scene类图

4.3.3 层

层是开发游戏的重点,我们大约会花费99%以上的时间在层上实现游戏内容。层的管理类似于Photoshop中的图层,它也是一层一层叠在一起。图4-13是一个简单的主菜单界面,是由三个层叠加实现的。

图4-13 层叠加

为了让不同层的组合产生统一的效果,这些层基本上都是透明或者半透明的。层的叠加是有顺序的,图4-13从上到下依次是菜单层→精灵层→背景层。Cocos2d-x是按照这个次序来叠加界面的。这个次序同样用于事件响应机制,即菜单层最先接收到系统事件,然后是精灵层,最后是背景层。在事件的传递过程中,如果有一个层处理了该事件,则排在后面的层将不再接收到该事件。每一层又可以包括各式各样的内容要素:文本、链接、精灵、地图等。

Cocos2d-x JS API中的层类是cc.Layer的类图,如图4-14所示。

图4-14 cc.Layer类图