• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

为cocos2d-x项目增加Lua支持

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

开始为游戏增加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改写。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua与.net的CLR相互调用发布时间:2022-07-22
下一篇:
lua调用java过程发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap