cocos2dx 3.2 lua绑定
1、环境电脑系统:win7 64位系统 cocos2dx:3.2版本
2、配置步骤1>python
下载python2.7.3 (`32bit`) 从 (
http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi)。安装Python,并且配置环境变量,把Python目录添加到Path中。
2>pyyaml
下载pyyaml 从http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe,并且安装。
3>pyCheetah
下载pyCheetah 从https://raw.github.com/dumganhar/my_old_cocos2d-x_backup/download/downloads/Cheetah.zip,并解压到 "Python的安装目录Libsite-packages"
4>NDK
NDK版本必须使用r9b。
下载地址[64bit NDK-r9b](http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64.zip),解压并配置环境变量NDK_ROOT。
5>dos2unix
下载地址:http://waterlan.home.xs4all.nl/dos2unix/dos2unix-6.0.5-win32.zip,解压到一某个目录下面,并设置PATH环境变量的值指向bin目录下,
6>测试
执行cocos2d-xtoolsbindings-generatortest目录下的test.bat,如果生成了simple_test_bindings目录并且有autogentestbindings.hpp、autogentestbindings.cpp和一个api的文件夹则执行成功,环境配置成功。
3、绑定自定义类
绑定自定义类,需要自己写Python脚本和.ini配置文件,不过Python脚本和.ini配置文件用不着自己从头写,cocos2dx有自带的,可以从其基础上改成自己的。
1>改写Python脚本在目录cocos2d-xtoolstolua下找到genbindings.py, output_dir:是输出目录,自己可以随意改,也可以直接改成工程中的目录,这样就不用copy了。 cmd_args:是要执行lua绑定的配置文件,其中cocos2dx.ini是配置文件的名称(配置自己的.ini配置文件时,注意路径),cocos2d-x是cocos2d-x.ini文件中第一行[cocos2d-x]的字符串,lua_cocos2dx_auto是生成的.h & .cpp文件名称
2>改写.ini配置文件
在目录cocos2d-xtoolstolua下找到cocos2dx.ini,注意:下面等号后的......是因为在原文中名字太多,在此使用省略号表示。
[cocos2d-x] 改成 [myClass]
prefix = cocos2dx 改成 prefix = myClass target_namespace = cc 改成 target_namespace = (就是没有命名空间了) headers =...... 改成 headers = 这里写上myClass头文件的目录,可以用相对路径,也可以用绝对路径 classes = ...... 改成 classes = myClass。你自己的要在lua中使用的类。
skip = ...... 改成 skip = (就是全删除了)
rename_functions = ...... 改成 rename_functions =
rename_classes = ...... 改成 rename_classes =
classes_have_no_parents = ...... 改成 classes_have_no_parents =
base_classes_to_skip = Clonable 改成 base_classes_to_skip =
abstract_classes =...... 改成 abstract_classes =
4、生成绑定文件
执行3中修改的genbindings.py文件,会在输出目录中生成绑定文件。
5、使用
把我们生成的绑定文件加入到工程中,在脚本引擎初始化的时候加入lua 编辑AppDelegate.cpp,包含lua_myClass_auto.hpp头文件,在LuaEngine* engine = LuaEngine::getInstance();后面加上register_all_myClass(engine->getLuaStack()->getLuaState()) ; 编译运行,这样就完成了cpp类的lua绑定,可以在lua中调用该类了。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |