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

3.4 Cocos2d-x核心概念

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

●导演

●场景

●层

●节点

●精灵

●菜单

●动作

●效果

●粒子运动

●地图

●物理引擎

本节我们介绍导演、场景和层概念以及对应的类。由于节点概念很重要,我们会在下一节继续介绍,而其他的概念则在后面的章节中介绍。

3.4.1 导演

导演类Director(v3.0之前是CCDirector)用于管理场景对象,采用单例设计模式,在整个工程中只有一个实例对象。由于单例模式能够保存一致的配置信息,便于管理场景对象。获得导演类Director实例语句如下:

auto director = Director::getInstance();

导演对象职责如下:

●访问和改变场景;

●访问Cocos2d-x的配置信息;

●暂停、继续和停止游戏;

●转换坐标。

Director类图如图3-12所示。

图3-12 Director类图

从图3-12所示的类图中还可以看到它有一个子类:DisplayLinkDirector。

3.4.2 场景

场景类Scene(v3.0之前是CCScene)是构成游戏的界面,类似于电影中的场景。场景大致可以分为以下几类:

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

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

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

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

图3-13 Scene类图

3.4.3 层

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

图3-14 层叠加

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

层类Layer的类图如图3-15所示。

图3-15 Layer类图