cocos2dx-lua開發旅程(一)

最近要做一個手遊項目,打算用cocos2dx來做,我也是初學者,網上很多書籍和資料都是採用cocos2dx的c++版本來做開發示例的

很少關於cocos2dx和lua怎麼結合在實際項目中的教程,這使得我很痛苦,所以我寫下這一系列教程,希望跟我一樣的同學能得到小需幫助


首先,我講講我爲什麼要用cocos2dx+lua來開發吧

我個人覺得,對於開發一些休閒類、性能要求不太高的遊戲,應該採用cocos2dx+lua、cocos2dx+html5、cocos2dx+javascript等來會使開發的效率提高

原因:

1、我們不用考慮很多c++中最煩的指針沒師範而導致的內存泄漏問題,雖然說cocos2dx已經有一套內存管理機制,但是對於我這種渣渣程序員來說

我絕對保證,我寫的程序一旦大了,肯定會有內存泄漏的發生,而且寫c++程序還有很多坑,比如以後如果要做遊戲熱更,那肯定是絕對的麻煩,甚至可以說無法完成

2、用lua等腳本語言來開發遊戲邏輯部分代碼將變得非常簡便,cocos2dx(我使用的是3.4版本)目前提供了一個馬上刷新加載程序的功能,使得我們一旦修改了代碼,可以不用像C++那樣編譯半天之後纔看效果,只需按一下F5就可以了,幾乎達到了“修改即看”的效果,方便我們調整ui佈局等等

3、用lua腳本之後,我們就可以少考慮內存泄漏問題了,我個人對於這東西很是害怕,所以如果不用考慮那麼多,將利於我把精力放在其他思考地方上去,而且使用lua腳本可以執行熱更,目前很多手遊都的熱更都是遊戲的邏輯代碼,其中很多就是用lua寫的,C++的要重新編譯,估計實現不容易吧(未探究,知道的同學告訴我一下哈,謝謝!)


至於說爲什麼用cocos2dx-lua而不用cocos2dx-html5或者cocos2dx-javascript,我認爲這個就要根據你們項目組情況咯,總之走C++和腳本語言開發遊戲的方向肯定是對的

好了,說了這麼多廢話,現在來開始講一講我最新學到的成果,有什麼不對的地方請大神們多多指教,也歡迎大家與我交流,QQ:1609097487(不過我比較少上Q)


首先有些cocos2dx-lua的基礎教程,在cocos2dx的官網上已經有了,這部分的東西我就不多說了,直接拉個鏈接給你們,打打基礎再看我寫的東西吧:

Quick-Cocos2d-x v3.3小白書系列教程

Quick-Cocos2d-x初學者遊戲教程


看完這兩個教程,基本上你對cocos2dx-quick就有個基礎瞭解

好接下來我要說教程上沒說,但是有可能同學們會比較困惑的一些地方啦

首先,我們說的代碼結構都以qucik-cocos2dx建立的代碼結構來進行說明(其實用cocos命令建立的結構也是差不多)


疑惑一:有很多直接addTo、move等方法,我在cocos2dx的API中沒找到啊,它們在哪裏?

答:在src/cocos/framework/extends裏面,有很多類似NodeEx.lua的文件,就是在這裏啦,quick在這裏對一些常見的類進行了一些方法的擴充,使得我們的代碼簡化了


疑惑二:有個什麼class的用來創建類的,我在哪裏可以看到它的源碼?

答:在src/cocos/cocos2d/functions.lua文件裏

lua沒有類的語法,但是cocos2dx利用類的概念跟lua的特性模擬了類的實現,

實現你們都看到了,在一開始定義一個本地變量:

local cc = class("Test")

然後實現方法:

function cc:method()

...

end

最後返回最開始的變量:

return cc


疑惑三:你怎麼知道這些東西的?

答:首先出錯時看編譯器的提示,裏面的debug.strace會說哪個lua腳本出錯的,然後再看看quick中的lua源代碼,最後唯有百度咯(很多我也是最後百度= =)


好,先寫到這裏,寫本文的時候我也是邊學邊寫的狀態,所以寫出來的都不是經驗之談,但是我仍然希望能對你有幫助,下次我將寫一些開發中遇到的問題,以及我的解決方法跟大家共享,謝謝各位



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章