1. 程式人生 > >cocos2d-x+lua開發模式下編輯器的選擇

cocos2d-x+lua開發模式下編輯器的選擇

        原本打算直接用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,雖然他也不完美,但是擴充套件性良好,而且就文字編輯器來說是接近完美的。