3.x的引擎目录与2.x的引擎目录的差别是非常大的。3.x主要是将引擎的各个文件按照用途进行了分类,使得引擎目录结构更加清晰了。

从目录中我们主要了解一下以下几个文件:

文件名 说明
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\

常用头文件:

#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; //声音引擎的命名空间

cocos2dx[3.2](1) 浅析cocos2dx3.2引擎目录的更多相关文章

  1. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  2. cocos2d-x-3.6 引擎概述

    cocos2d-x是一个游戏开发引擎,从公布到如今也有五六年了,一路看它慢慢壮大.它是如今应用最多的开源2d引擎,没有之中的一个,据说已经占据90%的市场,所以.对于想从事游戏开发的童鞋来说还是有必要 ...

  3. 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎

    Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...

  4. cocos2d-x-3.6 引擎基础概念

    先讲一下引擎里面几个重要的基础概念:导演.节点,场景.层,精灵. 当然实际开发人员会碰到非常多其它概念,不过不要紧.有了这些基础概念,后面自己学习起来就easy多了. 节点(Node)是cocos2d ...

  5. cocos2d-x环境搭建(win7+cocos2d-x-3.0)

    一.环境需准备的材料: 1.VS2012,下载地址:官网 2.cocos2d-x和cocostudio,下载地址:官网 3.eclispe,我用的是:adt-bundle-windows-x86_64 ...

  6. 浅析js模板引擎

    js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...

  7. Chrome V8系列--浅析Chrome V8引擎中的垃圾回收机制和内存泄露优化策略

    V8 实现了准确式 GC,GC 算法采用了分代式垃圾回收机制.因此,V8 将内存(堆)分为新生代和老生代两部分. 一.前言 V8的垃圾回收机制:JavaScript使用垃圾回收机制来自动管理内存.垃圾 ...

  8. cocos2dx[3.2](3) 浅析CCDeprecated.h

    CCDeprecated.h中存放的都是2.x将要被抛弃的命名规范,主要包含类名.枚举类型. 虽然说2.x的这些命名规范被CCDeprecated.h保留了.但是为了彻底学习3.x的新特性,就必须要尽 ...

  9. Cocos2d-x 3.0final 终结者系列教程01-无论是从cocos2d-x2.x升级到版本cocos2d-x3.x

    诡谲的江湖,易变. 花花世界,车来人往. 最终确定.安家,将Cocos2d-x3.0final相关技术精加工的版本.并推出了博客文章, 不为他人,只为自己. 学习交流QQ群:301954471 --- ...

随机推荐

  1. luogu2014 选课[树形背包][优化成$O(n^2)$的方法]

    https://www.luogu.org/problemnew/show/P2014 树形背包的裸题..当版子好了. $f[i][j][k]$表示子树$i$选前$j$个孩子,共$k$个后代节点时的最 ...

  2. 高大上的微信小程序中渲染html内容—技术分享

    大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 解决方案 wxP ...

  3. Spring 静态代理和动态代理

    现在我们来模拟一下,某位学生去考试. 假设他(小明)正常的考试. 运行结果:        结果: 突然某一天,他睡过头了,来不急去考试,所有他打算叫另一个人(Cheater)去代替他考试. 运行结果 ...

  4. shell变量、函数和数组以及字符串的截取

    一.变量 1.shell变量名 (1)可以由字母.数字.下划线等字符组成.但是第一个字符必须是字母或者下划线. (2)若果变量中包含下划线(_)则要特别注意,$project_svn_$date.ta ...

  5. php上传文件代码解析

    思想:把html的input标签组织成一个数组,然后去重 关键技术涉及的函数 is_dir mkdir move_uploaded_file() 涉及的数组 预定义数组$_FILES 步骤一:检查上传 ...

  6. 微信小程序let和var以及const有什么区别

    在JavaScript中有三种声明变量的方式:var.let.const. var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用. for(var i=0;i&l ...

  7. 京东POP店铺使用京东物流切仓操作方法

    首先进入京东物流工作台:https://wl.jdwl.com/ 在运营管理中,点击店铺商品 然后看截图操作

  8. Java中 DecimalFormat 用法详解

    我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: import java.text.D ...

  9. C# 选择文件夹 选择文件

    选择文件 //选择文件 OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以选择多个文件 ...

  10. 「雅礼集训 2017 Day5」远行

    题目链接 问题分析 要求树上最远距离,很显然就想到了树的直径.关于树的直径,有下面几个结论: 如果一棵树的直径两个端点为\(a,b\),那么树上一个点\(v\)开始的最长路径是\(v\rightarr ...