在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开始为游戏增加Lua脚本支持,今天主要配置了一下开发环境:cocos2d-x 2.2.1,xcode5。 1. 创建cocos2d-x-lua项目 类似于创建C++项目,用以下命令即可: python create_project.py -project Lua1 -package com.GAMTEQ.Lua1 -language lua 这样创建出的项目,主要是为了让lua调用C++,即以Lua脚本来启动游戏。 2. 为项目增加Lua支持 由于我的游戏以前没有Lua支持,所以不能用上述命令。 解决方法很简单,把$MYDIR/cocos2d-x-2.2.1/scripting/lua目录add到xcode的项目里就可以了。 但是要注意不是全部add,具体add哪些文件,要参考1中的lua目录内容: 但是链接时遇到问题 ld: warning: ignoring file /Users/Christian/code/cocos2d-x-2.2.1/scripting/lua/luajit/android/armeabi/libluajit.a, file was built for archive which is not the architecture being linked (i386): /Users/Christian/code/cocos2d-x-2.2.1/scripting/lua/luajit/android/armeabi/libluajit.a Undefined symbols for architecture i386: "_luaL_checklstring", referenced from: _cocos2dx_lua_loader in Cocos2dxLuaLoader.o 明明add的是luajit/ios/libluajit.a,为什么报错信息显示链接到android的库了呢,看了xcode项目信息,也是ios的库。 于是删掉这几个库,执行sh $MYDIR/cocos2d-x-2.2.1/scripting/lua/luajit/build_ios.sh重新编译luajit,问题解决。 这种链接错误在我编译libcurl时也遇到过,可见xcode这里是有bug的,所以再遇到这种问题,还是手动重编库为妙。 3. C++访问Lua脚本 具体访问方法参考我GitHub上今天的commit,不细说。 值得一提的是,Lua脚本放在何处。我本来是放在Classes下的,然后再add进Resources。但是ios的资源是要拷贝到Resources下的,导致同样的脚本有2个副本。运行的时候发现,修改Classes下的脚本,不影响运行结果,重新add进Resources也无用。只有直接修改Resources下的脚本才有效。 所以还是应该把Lua脚本放在Resouces/Script目录下。 4. Lua脚本编辑器 xcode貌似不能支持Lua,既没高亮又没提示。今天尝试了Sublime和IntelliJ,果断选择前者,非常好用。尽量不用破解版,未购买只是会偶尔弹窗提示几次而已。配置Sublime开发环境的方法参考我转载的一篇文章: http://www.cnblogs.com/gamteq/p/3535152.html 5. 计划 接下来几天准备复习一下Lua语法,把游戏的配置和角色状态机用Lua改写。
|
请发表评论