cocos2d-x+lua開發模式下編輯器的選擇,cocos2d-xlua
原本打算直接用CocosIDE的,畢竟是官方出品,而且支援Android遠端偵錯,windows下的調試也很方便,調試的資訊也很全,智能提示也不錯。好了,一切看上去很完美,但是它有一個致命缺陷,就是繼承了eclipse一貫的特性--“卡”。基於java寫的eclipse我一直使不慣,一方面是快速鍵跟vs迥異,而我又懶得去配置(如果他能像IntelliJ IDEA一樣,可以方便的重複資料刪除快速鍵,我還有興緻去配置一下,但是重複的快速鍵沒有任何提示,只是在使用的過程中會有各種問題),另一方面就是記憶體佔用高,卡成翔了。經常打兩個字母IDE就卡一兩秒鐘,當需要代碼提示的時候等它提示出來的功夫我早就手打完了。用CocosIDE寫代碼很不順手,各種心煩意亂。
所以我花了一個下午嘗試了幾個對Lua支援比較好的編輯器,但都是各有各的優點,也各有各的缺點。不像c++,vs+va幾乎完美。
1、IntelliJ IDEA Community Edition
這個是跟eclipse同等地位,但是各方面都優秀很多的IDE,Android後來也基於這個搞了個Android Studio,試圖取代基於eclipse的ADT。
優點是效能優異,代碼提示方便(手打的過程中直接提示,而且幾乎沒有卡頓)。如果我是java開發那就是不二選擇。
不過我實驗了一下它的lua外掛程式,感覺不是很好用。在提示上反而更像一個文字編輯器而不像一個智能的IDE(合情合理,畢竟只是一個外掛程式),這個比CocosIDE要差很多。理論上好好設定下lua的提示檔案(跟cocoside格式不同,而且感覺資訊很少,比如就沒有函數參數資訊和返回值資訊)是可以達到比較理想的效果的。但是可惜我不會......
2、Lua Studio
這個貌似是國人寫的。非常不錯,速度很快,代碼提示也很不錯。直接支援cocos2d-x 3.x的版本。而且也支援outline等功能。 不過它有一個致命的問題,就是它沒有直接運行程式的功能,只有偵錯工具的功能。而偵錯工具串連CocosIDE的run time程式非常慢,要十秒鐘才能啟動程式。而我寫lua程式,調試可以偶爾為之,但是運行程式必然是經常性的。 這點我就無法接受了。 當然我也可以把它當做純lua文字編輯器,直接運行程式。 不過那樣我又要改動run time的代碼,加入Console視窗來輸出log資訊,否則哪裡出錯都不知道。
我有些思考,即便做到了99%,但是有一點沒有做好也可能造成使用者流失。 甚至這一點沒有做好都不一定是軟體本身的問題,有可能是使用者無知或者誤操作。但是現實就是使用者流失,說多少遍“這不是我的錯”都沒用。 軟體如此,遊戲也是如此。
3、Bade vs plugin
這個是一個vs外掛程式,同樣具備調試功能。可以跟vs比較不錯的嵌入到一起。 缺點是沒有真正的代碼提示。 只有本檔案內輸入的提示。
4、Sublime Text3
試了幾個都有不爽的地方,最後還是回到了Sublime Text。 曾經我是用Vim的,但是用了Sublime Text,我就不想去碰Vim了,同樣是跨平台、支援各種外掛程式、功能強大的編輯器,我為什麼不使用一個簡潔漂亮的,而認為一個編輯器要分三種操作模式才是高大上?
當然就像Vim雖然可擴充,但是本質只是一個文字編輯器而不是IDE。不過我們寫lua指令碼也同樣不是寫c++代碼,並不需要多麼強大的IDE支援。
Sublime本身對lua就有一定的支援,而且編輯器本身就有強大的代碼補全、檔案搜尋、檔案跳轉、內容跳轉等功能,所以基礎功能是沒什麼問題了。 網上還有一個QuickXDev的外掛程式,是給quick-cocos2dx開發用的。不過由於cocos2-x v3 lua綁定方式改變了,所以對cocos2d-x原生的代碼提示還沒有完成,只有lua部分。
另外我添加了一個Cocos2dx的Build選項,說是Build,其實就是運行Runtime程式。log可以直接在Sublime中輸出。
選擇Tools--Build--New Build System,將下面的代碼拷貝過去,並儲存,然後就可以選擇這個Build了。
{ "cmd": ["E:\\Code\\runtime\\win32\\game.exe", "$file"], "file_regex": "^(?:lua:)?[\t ](...*?):([0-9]*):?([0-9]*)", "selector": "source.lua", "shell": true, "working_dir" : "E:\\Code\\runtime\\win32"}
其中cmd是程式的目錄,shell為true可以讓程式獨立顯示出來,否則只是命令列輸出在sublime中,working_dir顧名思義就是工作目錄(資來源目錄)。
總結:暫時沒有盡善盡美的編輯器,我現在打算用Sublime Text3,雖然他也不完美,但是擴充性良好,而且就文字編輯器來說是接近完美的。
cocos2d-x怎與Lua想結合使用 具體點
cocos2d-x帶有lua引擎了。看看這個。雖然是英語,但是很容易懂。
Cocos2d-x NEW Lua Engine README
Main features
Support autorelease CCObject object.
Call Lua function from C++ (local, global, closure), avoid memory leaks.
Add CCNode:setPosition(x, y), CCNode::getPosition() huge performance boost.
Remove needless class and functions from tolua++ .pkg files, improved performance.
CCMenuItem events handler.
CCNode onEnter/onExit events handler.
CCLayer touch & multi-touches events handler.
看看這2個串連。
www.cocos2d-x.org/...uments
Scripting and Translating between Programming Languages
vs2012開發cocos2dx調用lua報錯
請檢查luaXML.lua LuaXML_lib.lua 的路徑和 require("luaXML")是否一致,錯誤提示是找不到此檔案!