爲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改寫。

相關文章
相關標籤/搜索