1. 程式人生 > >cocos2dx3.1 lua繫結C++類

cocos2dx3.1 lua繫結C++類

1、按照官方提供的文件(cocos2d-x-3.1.1\tools\tolua\ README.mdown)安裝相應軟體包,NDK版本要求是r9b。

2、編寫自已的指令碼檔案,拷貝cocos2d-x-3.1.1\tools\tolua\genbindings_testscene.py, 修改如下地方,被註釋的是原始碼




3、編寫自已的配置檔案,拷貝cocos2d-x-3.1.1\tools\tolua\cocos2dx_spine.ini, 修改如下地方

a)


修改headers, classes, skip, abstract_class。相應的地方進行修改。



3、終端進入cocos2d-x-3.1.1\tools\tolua, 執行剛修改的角本./genbindings_my.py

4、在output_dir指定目錄會生成lua_myclass_auto.hpp,lua_myclass_auto.cpp

5、把生成的檔案新增至專案中,編輯AppDelegate.cpp檔案,

a)匯入lua_myclass_auto.hpp

b)修改applicationDidFinishLaunching方法,register_all_*加上是生成的的類名。必須放在engine->executeScriptFile前面。


6、編寫lua角本呼叫



7、執行結果


註明:

HelloWorldScene 的init方法被我改了

auto sprite =Sprite::create

("dog.png");


執行角本時遇到的問題。

File "/Users/sky-red/soft/cocos2d-x-3.1.1/tools/bindings-generator/generator.py", line 1306, in <module>

    main()

  File "/Users/sky-red/soft/cocos2d-x-3.1.1/tools/bindings-generator/generator.py", line 1246, in main

    raise Exception("Section not found in config file")

Exception: Section not found in config file

是由於配置檔案的節表忘了修改,即配置檔案的第一句,#[cocos2dx_spine]  ---> [myclass]

參考

http://www.bkjia.com/Androidjc/776391.html

http://www.2cto.com/kf/201405/301669.html

http://www.csdn123.com/html/mycsdn20140110/50/50bc23dff305294f6bbb3ac0cda98093.html

http://blog.csdn.net/zoyzn/article/details/27251633