为cocos2d-x项目增长Lua支持

开始为游戏增长Lua脚本支持,今天主要配置了一下开发环境:cocos2d-x 2.2.1,xcode5。html

1. 建立cocos2d-x-lua项目python

相似于建立C++项目,用如下命令便可:android

python create_project.py -project Lua1 -package com.GAMTEQ.Lua1 -language luaios

这样建立出的项目,主要是为了让lua调用C++,即以Lua脚原本启动游戏。xcode

2. 为项目增长Lua支持curl

因为个人游戏之前没有Lua支持,因此不能用上述命令。编辑器

解决方法很简单,把$MYDIR/cocos2d-x-2.2.1/scripting/lua目录add到xcode的项目里就能够了。ui

可是要注意不是所有add,具体add哪些文件,要参考1中的lua目录内容:lua

可是连接时遇到问题url

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改写。

相关文章
相关标签/搜索