读者可以到Cocos2d-x的官网(www.cocos2d-x.org)获取源代码,它提供了最近几个版本源文件的下载地址。在写本书时,引擎的最新版本是3.5,所以本书大部分知识都是基于这个版本讲解的,下载完成后是一个zip压缩文件,解压出来后,可以看到如图1-1所示的目录结构。
从图1-1中可以看出,共11个目录,下面介绍其中一些重要的目录:
图1-1 Cocos2d-x 3.5目录结构
· build:Win32 平台下的工程文件,用 VS2012 打开 cocos2d-win32.vc2012.sln文件,可直接对引擎源码和例子进行编译。
· cocos:该目录下包括了引擎的核心代码文件,如 2D、3D、声音(audio)、网络(network)、物理(physics)、数学库(math)、渲染(renderer)及与平台相关的一些代码文件等。
· extensions:资源更新管理、UI 控件和 3D 粒子特效(Particle3D)相关类文件存放的地方,其中控件有ScrollView、TableView等。
· external:包含一些外部库,如物理库(Box2D和chipmunk)、curl库、json文件解析库、XML文件解析库(tinyxml2)、sqlite3和unzip等。
· templates:存放着创建C++和lua项目的模板类和资源。
· tests:包含C++和Lua项目的Samples。
· tools:项目创建、lua bindings等相关工具。
对引擎的目录结构大致了解后,进入 build 目录下,用 VS2012 打开 cocos2d-win32.vc2012.sln这个文件,在解决方案标签下可以看到如图1-2所示引擎的工程结构。
从图1-2中可以看出,在解决方案下,一共有8个工程,它们各自的功能如下:
· libbox2d:2D物理库。
· libSpine:角色骨骼动画库。
· libcocos2d:Cocos2d-x引擎库,引擎的核心代码都在该工程下。
· libluacocos2d:引擎对lua支持库。
· cpp-tests:C++语言编写的Samples工程。
· cpp-empty-test:C++语言空工程。
· lua-tests:lua语言Samples工程。
· lua-empty-test:lua语言空工程。
对整个解决方案进行了解后,重新编译它,成功后,把cpp-tests工程设为启动项,运行该项目,可以看到C++实例工程项目的界面,如图1-3所示。
图1-2 Cocos2d-x项目结构图
图1-3 cpp-tests工程运行界面
cpp-tests 工程是引擎提供的 Samples,几乎囊括了它各个方面知识的运用,这对于初学者是一份很好的学习材料。引擎提供的源代码项目编译成功后,是生成属于我们自己游戏项目的时候了。前面讲过,引擎根目录的 tools 目录下有创建项目的工具,在创建项目之前要用到 Python 这个脚本工具,所以到 Python 的官网下载一个,使用 2.x 版本的,最新版本是2.7.9,下载完成后安装即可,然后使用 Windows 的命令行工具,进入“tools\cocos2d-console\bin”目录下,输入如下命令:
对于这条命令的解释,将有专门的章节讲述,在这里我们只要了解,执行完这条命令后,将会在bin目录下创建一个名为mygame的项目,这是一个HelloWorld的项目,该项目的目录结构如图1-4所示。
该工程的目录结构解释如下:
· Classes:项目的类文件,以后我们自己写的C++文件都放到该目录下。
· Resources:项目的资源文件,图片、声音、字体等都放在该目录下。
· cocos2d:引擎相关文件。
· proj目录:平台相关目录。
了解完mygame的目录结构后,在proj.win32目录下找到解决方案mygame.sln,双击打开它,编译执行后,可以看到如图1-5所示的界面。
图1-4 mygame目录结构
图1-5 mygame项目的HelloWorld界面
到此,本节分析了引擎的组织结构和怎么去创建一个属于我们自己的 HelloWorld 项目,在本书其他章节的代码讲解中,将以这个项目为基础,大部分知识的讲解都建立在这个项目上。