原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shahdza.blog.51cto.com/2410787/1549803
【唠叨】
3.x的引擎目录与2.x的引擎目录的差别是非常大的。学过2.x的朋友应该会发现2.x的引擎目录有点凌乱。而3.x主要是将引擎的各个文件按照用途进行了分类,使得引擎目录结构更加清晰了。
【窥探3.x引擎目录】
要想学好cocos2dx,首先就需要对引擎目录下的各个文件有所了解。接下来,就让我们先来分析一下cocos2dx3.2引擎的文件目录吧。
从目录中我们主要了解一下以下几个文件:
文件名 | 说明 |
build |
官方编译的项目解决方案。
集中放在这个文件中,如cocos2d-win32.vc2012.sln、Debug.win32、win32-msvc-2012-x86.cmd等。
这些在2.x版本是直接放在根目录的。
|
cocos |
集中了cocos2dx开发中使用的所有源文件。
除了cocos2dx引擎核心部分,还包含声音引擎、物理引擎、网络、GUI等。
|
extensions |
扩展目录。
包括一些2.5D特效,网络控制,以及一些GUI等,当要用到这些扩展时:
#include "cocos-ext.h"
using namespace cocos2d::extension
|
external |
第三方目录库。
主要包含了Box2D、chipmunk物理引擎,以及sqlite3轻型数据库等。
|
tests |
官方样例。
包含了官方的Cpp、lua例子。其中cpp-empty-test就是最简单的例子。
另外也包含了一个 cpp-tests 项目,里面涵盖了cocos2dx引擎所有类的使用,所以很重要!
|
templates |
模板目录。
提供了各种平台及IDE下创建的cocos2dx新工程的项目模板。
|
tools |
工具目录。
提供了各个平台下,创建cocos2dx新项目的脚本工具。
其中:\tools\cocos2d-console\bin\cocos.py 就是用来创建cocos2dx新项目的。
|
download-deps.py | 自动下载cocos2d-x所需的第三方插件(如果有的话) |
setup.py | 配置cocos2dx的环境变量的脚本。 |
【cocos文件目录】
在3.x版本中,将cocos2dx引擎开发所需要的几乎所有的资源文件全部都放在了cocos文件夹中。
并且对目录的分类更加的细致了,这使得引擎的结构更加清晰。
从文件目录的结构上,可以看出,分类更加的清晰了。
文件名 | 说明 |
base |
cocos2dx引擎的核心部分之一。
存放一些基础类,如Ref、Director、Vector、Map、Value等。
|
2d |
cocos2dx引擎的核心部分之一。
存放一些核心部分的类,如Sprtie、Layer、Label、Menu等。
|
3d |
新增了对部分3D的支持。
有Sprite3D、Animate3D等,呵呵,可能将来要出cocos3dx了吧。
|
math |
存放引擎中与数学相关的类文件。
如坐标类Vec2.h、几何类CCGeometry.h(定义了Rect、Size)等。
|
renderer |
引擎的渲染文件。
Texture2D、Renderer、Shader等。
|
deprecated |
存放2.x中即将被废弃的规则,目的是为了兼容2.x。
例如,使用typedef来对CC的兼容(如:typedef Label CCLabel)。
|
platform |
不同平台下的入口类。
CCApplication.h、CCGLView.h、CCGL.h、CCStdC.h
|
audio |
声音引擎相关源文件。
在2.x里是放在根目录的CocosDenshion文件夹。
|
physics |
物理引擎相关源文件。
chipmunk。
|
network |
网络相关相关源文件。
HttpClient、WebSocket。
|
ui |
GUI相关源文件。
|
editor-support |
对编辑器的支持。
cocosbuilder、cocostudio、spine。
|
scripting | lua脚本相关源文件。 |
cocos2d.h |
cocos2dx引擎核心头文件,包含了引擎中的所有类。
可以打开它,查看引擎的所有源文件所在位置。
|
【引擎中主要库】
我们先来打开 build\cocos2d-win32.vc2012.sln 解决方案。
可以看到,相比2.x来说,3.x的引擎库的分类更加详细了。
库文件 | 说明 |
libAudio | 声音引擎库。原名libCocosDenshion |
libBox2D | 物理引擎库 |
libchipmunk | 物理引擎库 |
libcocos2d | cocos2dx核心引擎库 |
libExtensions | 扩展库 |
libCocosBuilder | 编辑器的支持库 |
libCocosStudio | 编辑器的支持库 |
libSpine | 编辑器的支持库 |
libNetWork | 网络库 |
libGUI | GUI界面库 |
libLocalStorage | 本地数据存储方案库 |
libLua | lua脚本库 |
【头文件目录】
头文件 | 所在目录 |
cocos2d.h | cocos2d-x-3.2\cocos\ |
CCDeprecated.h | cocos2d-x-3.2\cocos\deprecated\ |
SimpleAudioEngine.h | cocos2d-x-3.2\cocos\audio\include\ |
HttpClient、WebSocket | cocos2d-x-3.2\cocos\network\ |
cocosbuilder、cocostudio、spine | cocos2d-x-3.2\cocos\editor-support\ |
CocosGUI.h | cocos2d-x-3.2\cocos\ui |
cocos-ext.h | cocos2d-x-3.2\extensions\ |
Box2D、chipmunk、sqlite3 | cocos2d-x-3.2\external\ |
常用头文件:
1
2
3
4
5
6
7
| #include "cocos2d.h" //这个应该是每个项目中都比不可少的头文件吧? 比不可少! #include "Box2D/Box2D.h" //Box2d物理引擎 #include "SimpleAudioEngine.h" //声音引擎 #include "cocos-ext.h" //第三方库文件 using namespace cocos2d; //cocos2d的命名空间 using namespace cocos2d::extension; //使用扩展类需要包含的命名空间 using namespace CocosDenshion; //声音引擎的命名空间 |
本文出自 “夏天的风” 博客,请务必保留此出处http://shahdza.blog.51cto.com/2410787/1549803