在cocos code ide的基礎上構建自己的lua開發調試環境

來源:互聯網
上載者:User

標籤:

  現在無論是端遊還是手遊(基於cocos2d)的開發, 基本模式都是c++核心 + lua邏輯的路線。對於c++的開發和調試, vs已經能很好的滿足開發人員的需求, 微軟這方面真是值得稱頌。不幸的是, lua的開發和調試,還沒有一個統一的,方便的開發調試環境,這也給廣大的luaer和項目造成了極大的困擾。目前通常的做法大致有如下幾種:

1、純粹意義上的lua編輯器, 如Sublime Text 2 + 外掛程式的模式,解決了代碼提示和補齊問題。

2、編輯器的基礎上加入調試功能, 通常是直接在vs上開發一個相應外掛程式(如 babe lua), 或者是一個獨立的第三方程式(如decoda、lua studio)。

  這些方案基本上都存在lua調試不方便, 沒有一個統一的規則來定製自己的lua api的問題, 因此如何構建一個好的lua開發調試環境對於項目極為重要。

  筆者因為對於代碼提示、補齊、如何調試lua、外掛程式開發的原理不懂, 並且也沒有精力去研究這方面的內容, 想到了一個偷懶的辦法, 也是考慮到目前cocos2d發展的良好趨勢, 何不直接利用cocos2d環境下lua的開發方式來構造一套自己的lua開發和調試環境。在cocos2d環境下, 開發人員通常會利用cocos code ide進行lua的代碼編寫和調試。cocos code ide是基於eclipse的(eclipse真是強大啊, 可以根據需要進行任意定製, 包括adobe的flash builder也是基於這套環境), 較好的解決了lua代碼的編輯問題, 如提示、補齊等。如果要調試lua代碼的話, 則需要指定一個可以稱之為第三方exe的獨立程式, 其實就是一個c++核心程式, 也就是lua的宿主程式, 用於解釋執行lua代碼。至於這個宿主程式, 你可以使用cocos2d預先提供的PrebuiltRuntimeLua.exe,也可以利用cocos2d提供的模板來構建自己獨特的宿主程式。這個宿主程式是如何和cocos code ide進行互動呢(這裡互動指的是可以在vs下調試宿主程式的c++代碼, 在cocos code ide裡調試lua), 筆者簡單的跟蹤了一下宿主程式的運行, 無論是本地調試還是遠端偵錯, 大概原理和流程如下:

1、宿主程式啟動, 顯示等待視窗, 並開啟socket監聽(這個是不是很贊, 意味著可以遠端偵錯)等待cocos code ide進行串連和指令。

2、cocos code ide啟動, 串連socket, 發送指令到宿主程式。

3、宿主程式分析指令, 如果是sendrequest這條指令,則執行一個lua入口指令碼(src\main.lua,可以在程式裡定製), c++和lua的眉來眼去就正式開始鳥。

  至於cocos code ide是如何在eclipse的基礎上實現lua代碼編輯相關和調試相關的功能, 筆者不懂, 也基本上不會花時間去研究。筆者要做的是在以上分析的原理基礎上, 在cocos code ide的基礎上定製自己的lua開發調試環境。

  本方案的優勢是建立在一個較好的基礎上, 可以比較方便快速的實現。由於cocos2d發展的良好趨勢和廣泛的應用, 相信cocos2d開發小組, 會不斷加強並完善cocos code ide的功能。因此,可以說是一個相對強大的團隊在背後支援這套方案。

  那麼如何?這個方案呢, 筆者認為主要有以下幾個問題需要解決:

1、如何讓cocos code ide認可定製的宿主程式。

2、如何定義自己的lua api讓cocos code ide可以識別。

定製宿主程式

  這個可以參考一個用cocos2d的模組建立的lua項目對應的runtime工程, 或者quick cocos中的player工程。

定義自己的lua api

 這個問題又可以細分為兩個方面:

1、lua指令碼中的api

  這個cocos code ide本身已經支援, 只要是ide可以檢索到的lua指令碼, ide就可以識別出裡面定義的api。

2、c++註冊到lua中的api

  這個可以參考cocos code ide是如何識別出lua庫,cocos2d庫,quick cocos庫中的api。

  補充和願景:

1、lua的調試原理。

2、vs外掛程式的開發原理(如何直接在vs環境下實現lua開發調試)。

3、eclipse中如何?某種語言的代碼編輯功能和調試功能。

3、microsoft或許有一天會將lua視作c++指定的官方指令碼, 直接在vs中整合lua的開發調試功能, 那可真是廣大luaer的福音。

在cocos code ide的基礎上構建自己的lua開發調試環境

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.