cocos2d 3.x lua 调用 c++自定义类

环境搭建

python安装

下载地址:https://pan.baidu.com/s/12ZeDY3vPxDT1S8juYGiMUQ

下载安装后 在系统变量 Path 下新增 python 安装目录 例如 F:\Python27   测试

cocos2d 3.x lua 调用 c++自定义类


JDK 安装

下载地址:https://pan.baidu.com/s/1Pj_XnvaveSajuWRy7w9PTg

下载后安装,新增系统变量 JAVA_HOME 内容为 jdk安装目录

cocos2d 3.x lua 调用 c++自定义类

新增 系统变量 CLASSPATH 内容为  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

cocos2d 3.x lua 调用 c++自定义类

在 系统变量 Path 下新增 %JAVA_HOME%\bin

cocos2d 3.x lua 调用 c++自定义类cocos2d 3.x lua 调用 c++自定义类


SDK安装

下载地址:https://pan.baidu.com/s/1fneFppKNejN7QIguu8PU1w

下载解压后, 执行 SDK Manager.exe (以android-20举例)

勾选Tools 下得 

cocos2d 3.x lua 调用 c++自定义类

勾选

cocos2d 3.x lua 调用 c++自定义类

然后点击右下角安装

cocos2d 3.x lua 调用 c++自定义类

新增 系统变量 ANDROID_SDK_ROOT 内容为 sdk解压安装目录

cocos2d 3.x lua 调用 c++自定义类

NDK 安装

下载地址:https://pan.baidu.com/s/1cwk_j1e9fCDFeU4PgxdQHw

解压即可, 新增系统变量  NDK_ROOT 内容为 解压目录

cocos2d 3.x lua 调用 c++自定义类

ANT 安装

下载地址:https://pan.baidu.com/s/1w3FNYIftHCDBYmJhonMaoA

解压即可 , 新增系统变量  ANT_ROOT内容为 解压目录下得bin目录

cocos2d 3.x lua 调用 c++自定义类


安装 setuptools

下载地址:https://pan.baidu.com/s/1Xr1RXYLpiL4fUx4jdG215g

解压后 cd到解压解压目录 执行 python setup.py install

cocos2d 3.x lua 调用 c++自定义类

等待安装完成

cocos2d 3.x lua 调用 c++自定义类

PyYAML 安装

下载地址:https://pan.baidu.com/s/19jHWajQmnK-Mgymk4u-Cww

解压后 cd 到解压目录 执行 python setup.py install 等待安装完成

cocos2d 3.x lua 调用 c++自定义类

Markdown 安装

下载地址:https://pan.baidu.com/s/1Eb1H3ZLh_RnWmqWKKFiP6Q

解压后 cd 到解压目录 执行 python setup.py install 等待安装完成

cocos2d 3.x lua 调用 c++自定义类

cocos2d 3.x lua 调用 c++自定义类

Cheetach 安装

下载地址:https://pan.baidu.com/s/1ShnuLzUBGWwGSkRLL1wFzA

解压后 cd 到解压目录 先执行 python setup.py build 

cocos2d 3.x lua 调用 c++自定义类

再执行 python setup.py install

cocos2d 3.x lua 调用 c++自定义类

在系统变量 Path 下新增 python安装目录下得 Scripts路径 例如 F:\Python27\Scripts 

环境配置完成

新建一个 cocos lua 工程 cocos new test -p com.aa.test -l lua -d f:\

cocos2d 3.x lua 调用 c++自定义类

编写自定义类

cocos2d 3.x lua 调用 c++自定义类

MyClass.h

cocos2d 3.x lua 调用 c++自定义类

MyClass.cpp

cocos2d 3.x lua 调用 c++自定义类

到工程下 cocos2d 3.x lua 调用 c++自定义类

复制 cocos2dx.ini 并改名为 MyClass.ini

cocos2d 3.x lua 调用 c++自定义类

打开 MyClass.ini 修改标记得地方

cocos2d 3.x lua 调用 c++自定义类

再打开 genbindings.py 翻到161行左右 

注释其他 并添加自己得类

cocos2d 3.x lua 调用 c++自定义类

执行

 cocos2d 3.x lua 调用 c++自定义类

等待生成完成

cocos2d 3.x lua 调用 c++自定义类

转到 cocos2d 3.x lua 调用 c++自定义类 目录下

会发现2新得文件 也就是刚才自己写得

cocos2d 3.x lua 调用 c++自定义类

打开 lua_MyClass_auto.cpp 文件 修改 MyClass.h 路径 为绝对路径 如果不想 自行到vs里面添加搜索路径

cocos2d 3.x lua 调用 c++自定义类

再转到 cocos2d 3.x lua 调用 c++自定义类 目录下

打开 lua_module_register.cpp 修改内容 

cocos2d 3.x lua 调用 c++自定义类

回到工程 在 libluacocos2d 工程下得 auto 下添加刚才生成出来的2个文件

cocos2d 3.x lua 调用 c++自定义类

编译工程

lua 里面编写

cocos2d 3.x lua 调用 c++自定义类

运行

cocos2d 3.x lua 调用 c++自定义类

至此 lua 调用 c++自定义类完成

打包到 android apk,为了观察方便 修改lua代码 

cocos2d 3.x lua 调用 c++自定义类

转到cocos2d 3.x lua 调用 c++自定义类 修改 cocos2d 3.x lua 调用 c++自定义类

加上新写得类文件

cocos2d 3.x lua 调用 c++自定义类

转到cocos2d 3.x lua 调用 c++自定义类修改cocos2d 3.x lua 调用 c++自定义类

cocos2d 3.x lua 调用 c++自定义类


cd 到 cocos2d 3.x lua 调用 c++自定义类 这个目录下

执行 cocos compile -p android --ap android-20

--ap是指使用android得版本 也就开头提到sdk下载得android版本

cocos2d 3.x lua 调用 c++自定义类

等待编译完成

cocos2d 3.x lua 调用 c++自定义类

apk 在 cocos2d 3.x lua 调用 c++自定义类

cocos2d 3.x lua 调用 c++自定义类

至此android 测试就成功了 ,ios 没mac 没测试 应该也是一样 而且linux下应该会更方便 注意在生成的auto文件

的包含路径修改就可以了