cocos2dx-3.x 导入lua扩展库
使用cocos2dx-lua做开发,免不了需要利用额外的lua扩展库。lua 扩展库一般由 c/c++ 写成,其接口有两种方式生成,一种是手写luaL_register(lua5.1),另一种是利用 tolua++ 工具。这里讨论的是前者,即如何把已经写好的库导入到cocos2dx项目中使用。项目采用的是 cocos2dx-3.x 版本,涉及到的目录文件请对号入座。 准备所需的库首先我们要知道,cocos2dx 已经为我们提供不少的扩展库了,在 我们以添加云风的sproto库来做示例。 首先介绍一下sproto库,该库是云风精心构思后对 Google protobuf 协议的一个精简,更适用于游戏开发。详情请参阅文档 但是云风的这个库只支持lua5.2+的版本,而cocos2dx使用的是lua5.1,所以要使用的话,可以试试我的修改版。我所做的修改仅仅在lua层,下层的c核心与原版一致。所做的修改只是用 bitop 库来替换lua5.2内置的bit库(5.1木有)。 首先请下载 sproto。需要的文件为 然后我们还需要下载其利用到的相关库 bitop 和 lpeg。 文件准备就绪后就是导入到 cocos2dx 中。 导入在 #ifndef __LUA_BITOP_H_ #define __LUA_BITOP_H_ #include "lauxlib.h" LUALIB_API int luaopen_bit(lua_State *L); #endif 然后就是修改一些文件,来真正的导入了。 在 #include "lpeg/lptypes.h" #include "lpeg/lpcap.h" #include "lpeg/lpcode.h" #include "lpeg/lpprint.h" #include "lpeg/lptree.h" #include "lpeg/lpvm.h" #include "sproto/lsproto.h" #if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID) #include "bitop/bit.h" #endif 在 #if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID) {"bit",luaopen_bit},#endif {"lpeg",luaopen_lpeg},{"sproto.core",luaopen_sproto_core}, 然后。。。。就没有然后了。。。。 Android支持上述工作完成后,是可以在ios和mac下编译运行成功的。但Android还要多做点事情。 在 ../../../external/lua/lpeg/lpcap.c ../../../external/lua/lpeg/lpcode.c ../../../external/lua/lpeg/lpprint.c ../../../external/lua/lpeg/lptree.c ../../../external/lua/lpeg/lpvm.c ../../../external/lua/sproto/lsproto.c ../../../external/lua/sproto/sproto.c 细心点的可能会说 然后。。。是真的没有然后了。。。 总结总得来说还是很简单的,只需三步:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |