开始之前
首先来看一下 cocos2d-x3.x 的源码目录结构(这篇文章以 3.10 为例,只列出重要的几个目录和文件)
|-cocos2d-x3.10
|-tools
|-tolua
|-genbindings.py
|-cocos2dx.ini
|-cocos2dx_ui.ini
|-...
|-README.mdown
|-bindings-generator
|-libclang
|-libclang.dll
|-libclang.so
|-libclang.dylib
|-clang
|-cindex.py
|-generator.py
|-cocos
|-2d
|-...
|scripting
|-js-bindings
|-lua-bindings
|-auto
|-api
|-Action.lua\
|-...
|-lua_cocos2dx_auto.hpp
|-lua_cocos2dx_auto.cpp
|-lua_cocos2dx_ui_auto.hpp
|-lua_cocos2dx_ui_auto.cpp
|-...
主要列出了 tools 和 cocos 这两个文件夹下的主要内容,cocos 目录是 cocos2d-x 引擎的源码(C++),其中 lua-bindings 目录下是导出的脚本语言,包括 js 和 lua;在 lua-bindings 下有个 auto 文件夹,这就是 tolua 生成文件存放的地方。tools 目录下是 cocos2d-x 非常实用的一些工具,包括创建项目、编译项目、运行项目的控制台命令等,这里我们要看的是 tolua 和 bindings-generator 这两个文件夹;tolua 目录毫无疑问就是这篇文章的主角,接下来我们要做的工作就是在这个目录下完成的;binding-generator 目录下是一些 tolua 会用到的文件,其实我们不用理会,这里列出来只是为了告诉大家 tolua 会用到这几个文件。
准备工作
在开始之前我们需要做一个准备工作,就是配置环境。cocos 环境和 android 环境就不用讲了,还需要配置的是 python 环境,因为 cocos2d-x 的 tolua 是使用 python 脚本来执行的。这个工作看 tools/tolua/README.mdown 这个文件就行了,下面翻译一下
- 首先,安装 ndk 并配置环境变量 NDK_ROOT
- 然后,下载安装 python2.7,注意必须安装 32 位版本,下载地址
python2.7.3 - 配置 python 环境变量 PYTHON_BIN
- 下载安装 python 库 pyyaml,下载地址
pyyaml,pyyaml 安装的时候会读取 python 安装路径并将结果安装在 %PYTHON_BIN%\Lib\site-packages 目录下 - 下载 python 库 pyCheetah,下载地址