羅嗦幾句,本系列文章記錄了小魚(本人)自學Cocos2D-X的整個過程,主要從分析Cocos2D-x的源碼方式來學習Cocos2d-x這樣一個優秀的游戲引擎架構,本着不但要知其然還要知其所以然的學習態度來揭開Cocos2d-x的奧秘。閱讀本文要求讀者有一定的C++程序經驗。
一、Cocos2d-x是啥玩意
小魚是聽同事介紹,當前開發手機2d游戲多采用cocos2d-x引擎,開源且可以實現跨手機平台的快速移植,聽到有這種神器,向百度求助好多介紹cocos2d-x的文章,在這里我不去引用了大家可以去百度,只是知道一點cocos2d-x是可以在多種操作系統下來開發2d游戲的一個引擎就可以了。
二、Cocos2d-x開發環境的搭建
繼續百度找到了一大堆關於cocos2d-x在windows環境下的搭建的文章,這里也不要贅述了。
到官網 http://www.cocos2d-x.org/ 下載了最新版本的cocos2d-x3.0(要學就學新的cocos2d-x2.0,1.0都跳過了)
解壓在build文件夾里面找到了cocos2d-x在vs2012編譯器下面的解決方案cocos2d-win32.vs2012.sln
小魚還在使用古老的vs2003沒辦法下載一個安裝了一下vs2012(界面好丑,一點也不習慣 忍了)
打開解決方案,編譯,等了近10分鍾全部編譯通過。
三、從示例程序開始
在解決方案中可以看到如下的幾個工程
從命名上可以看隊形很整齊,簡單的瀏覽一下
Cpp-empty-test 應該是一個空的項目示例
Cpp-tests 應該是測試單元之類的東東,運行一下,原來是各種示例程序以后進行cocos2d-x程序開發應該會經常到這些示例程序里面來找代碼片段了。
libAudio 應該是封裝音頻播放功能的庫
libBox2D 毫無疑問 box2d物理引擎的封裝
libchipmunk 也是一個物理引擎的封裝
libcocos2d 從名稱上看應該是我們要着重了解的Cocos2d-x庫
libCocosBuilder 應該是與cocosBuilder有關系的東西,具體是什么碰到了再去深入了解
libCocosStudio 在官網下載cocos2d-x時看到了cocosstudio這個庫應該是與cocos studio有關系的
libExtensions 應該是一些擴展,展開文件去看一下,有關於Gui 和一些debug的工具
libGUI UI庫,展開UIWidgets可以看到這個ui庫有 Button,CheckBox, ImageView,LoadingBar等一些控件,還有富文本控件 RichText,太好了,游戲開發都會用到。
libLocalStorage 打開文件掃幾點,是對 sqlite 操作的封裝。應該是支持數據持久化的庫。
liblua 對Lua的支持庫
libNetwork 對網絡的支持,展開掃一眼頭文件,有對http,socket,websocket的支持,很給力。
libSpine 看了一下文件大概內容,應該是一些對cocos2d-x工具支持庫碰到再說。
lua-empty-test lua項目的空工程
lua-tests lua應用的示例程序
一共16個工程,核心是libcocos2d工程,從 cpp-empty-test的示例工程入手應該容易一些。
運行一下cpp-empty-test
看到了熟悉的 Hello World 下面我就從這里入手啦。