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



        3>pyCheetah 


         下载pyCheetah 从https://raw.github.com/dumganhar/my_old_cocos2d-x_backup/download/downloads/Cheetah.zip, 并解压到 "Python的安装目录\Lib\site-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-x\tools\bindings-generator\test目录下的test.bat,如果生成了simple_test_bindings目录并且有autogentestbindings.hpp、autogentestbindings.cpp和一个api的文件夹则执行成功,环境配置成功。

3、绑定自定义类


        绑定自定义类,需要自己写Python脚本和.ini配置文件,不过Python脚本和.ini配置文件用不着自己从头写,cocos2dx有自带的,可以从其基础上改成自己的。

        1>改写Python脚本


       在目录 \cocos2d-x\tools\tolua下找到genbindings.py,

        
        output_dir = '%s/tools/tolua/auto' % project_root

        cmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'lua_cocos2dx_auto'), \
                             'cocos2dx_extension.ini' : ('cocos2dx_extension', 'lua_cocos2dx_extension_auto'), \
                             'cocos2dx_ui.ini' : ('cocos2dx_ui', 'lua_cocos2dx_ui_auto'), \
                             'cocos2dx_studio.ini' : ('cocos2dx_studio', 'lua_cocos2dx_studio_auto'), \
                             'cocos2dx_spine.ini' : ('cocos2dx_spine', 'lua_cocos2dx_spine_auto'), \
                             'cocos2dx_physics.ini' : ('cocos2dx_physics', 'lua_cocos2dx_physics_auto'), \
                             'cocos2dx_experimental_video.ini' : ('cocos2dx_experimental_video', 'lua_cocos2dx_experimental_video_auto'), \
                             cocos2dx_experimental.ini' : ('cocos2dx_experimental', 'lua_cocos2dx_experimental_auto'), \
                             'cocos2dx_controller.ini' : ('cocos2dx_controller', 'lua_cocos2dx_controller_auto'), \
                             }

        output_dir:是输出目录,自己可以随意改,也可以直接改成工程中的目录,这样就不用copy了。

        cmd_args:是要执行lua绑定的配置文件,其中cocos2dx.ini是配置文件的名称(配置自己的.ini配置文件时,注意路径), cocos2d-x是cocos2d-x.ini文件中第一行[cocos2d-x]的字符串, lua_cocos2dx_auto是生成的.h & .cpp文件名称


        2>改写.ini配置文件


       在目录 \cocos2d-x\tools\tolua下找到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中调用该类了。


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐