Cocos2d-x 本身的环境搭建很简单,但其需要的基础环境就略显复杂,包括安卓开发相关的环境、Python 环境、C++ 开发环境等。
安装 Android
基础环境
Java(JDK)
Java Development Kit:Java 开发工具包。
环境变量:
1 | set JAVA_HOME = D:\Android\jdk8 |
Android(SDK)
Android Sofeware Development Kit:Android 软件开发工具包。
环境变量:
1 | set ANDROID_SDK_ROOT = D:\Android\SDK |
原生编译环境
C++ to Java(NDK)
Native Development Kit:原生开发工具包。
环境变量:
1 | set ANDROID_NDK_ROOT = D:\Android\android-ndk-r10e |
编译打包
两种打包工具,ant 和 gradle,ant 比较早期,eclipse 使用;gradle 是目前主流的 android 打包工具,android studio 使用。
Gradle
一个 Gradle 框架的 multi-project 结构如下:
1 | project |
这里的 project 对应 Android Studio 项目中的 moudle,进一步对应到 cocos2dx 的工程,app 即为工程主模块,module1 即为 libcocos2dx,一个 cocos2dx 项目在 Android Studio 中的基本项目结构如下:
1 | proj.gradle |
src
目录为源文件目录,包括 java 源代码 java
、android 工程资源 res
、资源目录 assets
(游戏的全部内容包括 lua 代码,资源、音效全放这里)、依赖的库文件 jniLibs
等等,结构如下:
1 | src |
除了 src
目录,最重要的就是 gradle 打包需要的脚本文件 build.gradle
及相关的配置文件,每一个 module 都有一个 build.grade
,主工程也需要一个 build.grade
。
主工程的 build.grade
定义了对所有 module 都生效的配置和动作,其中最重要的是定义了使用的 grade 工具版本。
1 | dependencies { |
每个 module 各自定义自己的打包配置和动作,下面列几个主要的项。
1 | apply plugin: 'com.android.application' |
这里配置了该模块的性质,application
表示是可运行的主模块,比如上面的 projandroid
,library
表示不能独立运行的库,由其它模块包含使用,比如上面的 libcocos2dx
。
1 | dependencies { |
定义模块之间的依赖性,如 projandroid
依赖于 libcocos2dx
,有了这层依赖关系,projandroid
生成的时候就会先生成 libcocos2dx
,然后将其生成的文件作为一个库保存在其 src/main/jniLibs
下,然后一起打包进 apk 包。
settings.grade
定义了该工程包括的模块。
1 | include ':libcocos2dx' |
local.properties
做一些本地配置,主要保存了 sdk 和 ndk 的路径。
1 | ndk.dir=D\:\\Android\\android-ndk-r10e |
Android Studio
安装 Android Studio。
安装 Visual Studio
没啥好说的,装就是了。建议安装 2015 版本或 2017 版本,2015 以下有点老了,2019 有点太新了,当然现在电脑配置高了,安装多个版本也是一个不错的选择。
安装 Python27
Python 要安装 2.x 的版本,安装完配置环境变量:
1 | set PYTHON_BIN = C:\Python27\python.exe |
安装 Cocos2d-x3.17
从官网下载最新版本的 Cocos2d-x3.17,解压之后运行 setup.py
,这个脚本会自动检查环境变量并补全以下环境变量:
1 | set COCOS_X_ROOT = D:\engine |
引擎的目录结构:
1 | |-cocos2d-x-3.17 |
源码在 cocos, extensions, external
这三个目录下,extensions
为一些扩展,external
主要是第三方库。tests
目录下有官方提供的例子,c++, lua, js
三种语言的例子都有,可打开运行看看。
创建工程的命令:
1 | usage: cocos new [-h] [-p PACKAGE_NAME] [-d DIRECTORY] [-t TEMPLATE_NAME] |
打开命令行,输入 cocos new -p com.xxx.game.mygame -d d:/learn/cocos -l cpp mygame
即可创建一个 C++ 工程。
工程配置
创建的工程默认是不开控制台,打开 main.cpp
,添加下面代码开启控制台。
1 | int WINAPI _tWinMain(HINSTANCE hInstance, |
添加宏定义 USE_WIN_CONSOLE
即可开启控制台,去掉这个宏定义就关闭控制台。在代码中定义 #define USER_WIN_CONSOLE
,或者在 项目属性->C/C++->预处理器->预处理器定义 中添加 USE_WIN32_CONSOLE
。
这是 C++ 工程的做法,Lua 工程也可以这么做,但有更好的做法,定义宏 #define SIMULATOR_WITH_CONSOLE_AND_MENU 1
即可,不仅可以开启控制台,还开启了菜单栏,可以在运行时改变分辨率以及按 F5 刷新。这个宏在 SimulatorWin.cpp
中定义,默认是定义为 0,把它改成 1 即可。