今天无意在浏览cocos2d-js和cocos2d-lua的优劣时发现大牛廖宇雷说的:
“与 Java/Objective-C 的交互:不管是 quick-cocos2d-x 里提供的 luaoc/luaj 模块,还是 wax, luajava 这些开源项目,都让我们可以绕过 C/C++ 层实现 Lua 和 Java/Objc 的交互。这个优势在游戏发行阶段,集成各种第三方 SDK 时绝对会节约巨量时间!!!”
想起以前做这方面是借用C++当中转站实现lua与java或oc的交互的 然后这里说可以直接调用 于是查了下资料 连接如下:
luaj:
http://dualface.github.io/blog/2013/01/01/call-java-from-lua/
PS:下载链接404 ,不过不用担心 此功能已经合并到quick里面了
luaoc:
http://dualface.github.io/blog/2013/01/27/call-objectivec-from-lua/
在 cocos2d-x 启动后,Lua 代码将由 GL 线程调用,因此从 Lua 中调用的 Java 方法如果涉及到系统用户界面的显示、更新操作,那么就必须让这部分代码切换到 UI 线程上去运行。
反之亦然,从 Java 调用 Lua 代码时,需要让这个调用在 GL 线程上执行,否则 Lua 代码虽然执行了,但会无法更新 cocos2d-x 内部状态。
在两个线程间互相切换。确保 Lua function 跑在 GL 线程,Java 代码跑在 UI 线程
如果不使用异步 我之前碰到是会闪退的
“与 Java/Objective-C 的交互:不管是 quick-cocos2d-x 里提供的 luaoc/luaj 模块,还是 wax, luajava 这些开源项目,都让我们可以绕过 C/C++ 层实现 Lua 和 Java/Objc 的交互。这个优势在游戏发行阶段,集成各种第三方 SDK 时绝对会节约巨量时间!!!”
想起以前做这方面是借用C++当中转站实现lua与java或oc的交互的 然后这里说可以直接调用 于是查了下资料 连接如下:
luaj:
http://dualface.github.io/blog/2013/01/01/call-java-from-lua/
PS:下载链接404 ,不过不用担心 此功能已经合并到quick里面了
luaoc:
http://dualface.github.io/blog/2013/01/27/call-objectivec-from-lua/
在 cocos2d-x 启动后,Lua 代码将由 GL 线程调用,因此从 Lua 中调用的 Java 方法如果涉及到系统用户界面的显示、更新操作,那么就必须让这部分代码切换到 UI 线程上去运行。
反之亦然,从 Java 调用 Lua 代码时,需要让这个调用在 GL 线程上执行,否则 Lua 代码虽然执行了,但会无法更新 cocos2d-x 内部状态。
在两个线程间互相切换。确保 Lua function 跑在 GL 线程,Java 代码跑在 UI 线程
如果不使用异步 我之前碰到是会闪退的