1.建立新的cocos2d-x 3.0 項目
在命令列中輸入: cocos new HelloWorld(項目名稱)-p com.ss.pku(包名字)-l cpp(項目類型) -d D:\cocos\workspace(項目存放路徑)
2.檔案夾分析
resource 檔案夾 存放資源檔
include和source檔案 存放標頭檔和原始碼檔案
AppDeleGate.h 和 AppDeleGate.c是cocos2d-x遊戲的通用入口檔案。
3.addChile方法,這個方法可以把一個遊戲元素放置到另一個元素之中。只有把一個遊戲元素放置到其他已經呈現出來的遊戲元素中,它才會呈現出來。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.以捕魚遊戲情境為例,情境可以大致分為四層。
菜單層、觸摸層、動作層、背景層
2.關係圖中的每一個元素稱作節點,關係圖稱作渲染樹。渲染情境的過程就是遍曆渲染樹的過程。
渲染樹的優勢在於我們只需要考慮節點相對於父節點的屬性,就可以逐層穿件複雜的對象和動作。
3.動作是由Action類實現,派生出持久性動作ActionInterval和瞬時性動作ActionInstant。所有的動作都是派生自以上兩個類之一。
4.動畫;animation 是一種特殊的持久性動作,只能應用於精靈上。一個幀動畫,是由多張靜止的圖片不停切換形成。
5.cocos2d-x 所有的對象都建立在堆上。建立一個對象首先要為對象分配記憶體,然後調用初始化方法來初始化對象。
6.使用建構函式建立的對象需要調用者負責釋放,而使用Factory 方法則不需要。
7.使用初始化方法或者Factory 方法建立對象,使用訪問器方法類比屬性。cocos2d-x提供了Object-C風格的容器CCArray和CCDictionary。
8.AppDelegate負責控制遊戲的生命週期。
9.選取器類似於C++中的類函數指標的機制,提供了建立選取器的宏,用來建立函數指標。宏裡面的參數,表示被指向的類方法。
10.cocos2d-x實現了自己的根類CCobject,引擎中的所有類都派生自CCObject。每個對象包含一個用來控制生命週期的引用計數器。
11.避免濫用autorelease(),只在Factory 方法等不得不用的情況下使用,盡量以release()來釋放對象引用。
12.cocos2d-x 為我們提供了CCArray、CCDictionary等容器。
13.cocs2d-x記憶體管理的原則
程式段必須成對執行retain()和release()或者執行autorelease()來開始和結束對象的引用。
Factory 方法返回錢,應該通過autorelease()結束對該對象的引用。
對象傳值時,應考慮到新舊對象相同的特殊情況。
盡量使用release()而不是autorelease()來釋放對象引用,以確保效能最優。
儲存CCObject的子類對象時,應嚴格使用cocos2d-x提供的容器,避免使用STL容器,對象必須以指標存入。
14.CCLog cocos2d-x提供的日誌輸出函數。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.CCDirector 控制遊戲流程的總管類,提供繪圖方面的選項以及平台相關的功能。遊戲呈現方面的設定,切換當前的遊戲情境。
管理情境的方法在p33頁,包括啟動情境,切換情境,將情境壓棧,將情境出棧,暫停,恢複和結束情境。注意的是,在載入情境,再進行切換,所以再載入完畢的瞬間,系統中會同時存在兩個情境。注意記憶體。
2.情境的翻頁、波浪、淡出淡入等情境,是派生自CCScene的CCTransitionScene系列特效類來實現的。
3.CCSprite代表了遊戲中一個最小的可見單位,說它靈活是由於裝載了一個平面紋理,具有豐富的表現力,而且可以通過多種方式載入。
4.我們可以認為紋理就是一張圖片,這張圖片被精靈顯示出來。
5.CCSprite會自動把圖片作為紋理載入到遊戲中,然後使用紋理初始化精靈。
6.zOrder代表了該節點下元素的先後次序,值越大順序越靠上。
7.cocos2d-x存在兩種座標系。繪圖座標系,以左下角為原點。紋理座標系以左上方為原點。
8AnchorPoint用於設定一個錨點,以便精確地控制節點的位置和變換。它的兩個參量x和y的取值通常都是0到1之間的實數,表示錨點相對於節點長寬的位置。錨點在父節點中的座標實際上是它相對於父節點左下角的座標值。
9.void *表示為任意類型的指標,該指標與一地址值相關,但是不清楚在此地址上對象的類型。
10.定時器是使遊戲動態變化所需要的工具。我們捕魚的碰撞檢測機制可以通過update事件來實現。魚群的定時產生、免費金幣的定時重新整理,可以通過schedule定時器實現。
11.cocos2d-x 內建了三種特殊的層,CCLayerColor一個單純的實心色塊,CCLayerGradient,一個色塊可以設定兩種顏色的漸層效果。CCMenu,十分常用的遊戲菜單。