quick-cocos2d绑定自定义类到lua

来源:互联网 发布:java接口的实现方式 编辑:程序博客网 时间:2024/04/28 17:22

—————————————————————————绑定自定义类到lua——————————————————————————————————

1:

/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external下面建立一个文件夹如:helper,并在

这个文件夹下建立自己的自定义


2:在/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/luabinding下的cocos2dx_extra_luabinding.tolua

里添加自定义类的头文件(去掉不要的只留方法)


3:执行/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/luabinding下面的build.bat,命令会把自定义类添加到

该目录下的cocos2dx_extra_luabinding.cpp和cocos2dx_extra_ios_iap_luabinding.cpp文件中,quick所有的外部绑定类即extra目录下的自定定义类都被统一放到这里


命令执行如下所示:

command: "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/bin/mac/tolua++" -E CCOBJECTS=CCHTTPRequest -L "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/bin/lib/compile_luabinding_config.lua" -o "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_luabinding.cpp" "cocos2dx_extra_luabinding.tolua"


creating file: /Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_luabinding.cpp


creating file: /Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_luabinding.h


----------------------------------------


// add to AppDelegate.cpp

#include "cocos2dx_extra_luabinding.h"


// add to AppDelegate::applicationDidFinishLaunching()

CCLuaStack* stack = CCScriptEngineManager::sharedManager()->getScriptEngine()->getLuaStack();

lua_State* L = stack->getLuaState();

luaopen_cocos2dx_extra_luabinding(L);


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


command: "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/bin/mac/tolua++"  -L "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/bin/lib/compile_luabinding_config.lua" -o "/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_ios_iap_luabinding.cpp" "cocos2dx_extra_ios_iap_luabinding.tolua"


creating file: /Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_ios_iap_luabinding.cpp


creating file: /Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x/external/extra/luabinding/cocos2dx_extra_ios_iap_luabinding.h


----------------------------------------


// add to AppDelegate.cpp

#include "cocos2dx_extra_ios_iap_luabinding.h"


// add to AppDelegate::applicationDidFinishLaunching()

CCLuaStack* stack = CCScriptEngineManager::sharedManager()->getScriptEngine()->getLuaStack();

lua_State* L = stack->getLuaState();

luaopen_cocos2dx_extra_ios_iap_luabinding(L);



4:打开/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/player/proj.mac/quick-x-player.xcodeproj工程,在项目的相应位置添加

自定义类(目录),重新编译;编译时如果报错,Vailid Architectures选择x86_64


5:lua中使用:

print(tolua.type(CCDGHelper.createWithdImg))

local texture=CCDGHelper:createWithdImg("resource/XiaHouYuanA(2).jpg","resource/XiaHouYuan.jpg")

local sp=CCSprite:createWithTexture(texture)

self:addChild(sp,1000)

sp:setPosition(CCPoint(display.cx,display.cy))

sp:setScale(0.55)


6:重新编译framework_precompiled.zip文件


7:安卓打包注意:

build_native.sh编译时会根据/Users/lcomplete/Documents/xinsanguozhi/quick-cocos2d-x/lib/cocos2d-x目录下的所有文件夹下的Android.mk

来编译自定义的类,所以要把我们自己加的类添加到相应目录的Android.mk下,一般是添加到external/extra下的目录中,所以要在该目录 下的Android.mk

中添加我自定义的类;然后再android工程下的build_native.sh编译libcocos2d.so库文件,编译成功后就可以打包APK了

注意:quick-cocos2d不需要添加libcocos库工程项目,所以不需要在eclips里添加库工程和引用,因为builc_native.sh已经把库工程编译成.so文件并引用


0 0