最近着力开发一款手游,前端基于cocos2d-x引擎,使用lua脚本方案,后端用java,有一个需求是服务器要能自动计算玩家战斗结果,幸好使用了lua,该语言就是这么强大,服务器直接复用前端代码,精确完成战斗过程以及结果计算。 随之而来的两个问题是:
1、整理前端代码,跟界面逻辑解耦。
2、java中如何跑lua代码。
第一个问题说来也挺自豪,多年养成的mvc习惯,业务代码很容易就能揪出来。
第二问题google了一下,有很多解决方案,大体分为两种:
1、使用java将lua vm实现一便。如:luaj
2、使用jni直接嵌入lua的vm。 如:luajava,JNlua
作者只考虑第2种情况,由于JNlua在mac下编译有点问题,放弃,直接选择了luajava。
luajava的编译过程可参照官网的介绍,编译完成后会得到两个文件:libluajava-1.1.jnilib,libluajava-1.1.jar
.jar 很自然要加到项目的包路径下,重要的是.jnilib的位置,使用System.getProperty("java.library.path")打印出地址列表,放到其中一个里面就可以,mac 下可以放到:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java。
</