天天看點

Cocos2D學習筆記(1)- 常用的類

1、坐标系

    >螢幕坐标系(uikit):原點在左上角!

    >opengl坐标系:原點在螢幕的左下角!

2、遊戲設計:director——scene——layer——sprite。

    >ccdirector:導演類,相當于是遊戲策劃,負責整個遊戲的布局和運作規則的制定。

    >ccscene:場景類,每個場景可以是一個界面或一個關卡。

    >cclayer:圖層類,為了友善遊戲界面的渲染管理。

    >ccsprite:精靈類,

小結:一個導演類(ccdirector)可以指揮多個場景類(ccscene),一個場景類裡面可以有多個圖層(cclayer),一個圖層裡可以有多個精靈(ccsprite)被顯示。

3、節點類(ccnode)

    >節點類是cocos2d-x裡的主要類,繼承自ccobject。

>任何需要華仔螢幕上的對象都是節點類。例如:最常用的ccscene,cclayer,ccsprite,ccmenu類都是繼承自ccnode類。

    >節點類的主要功能:

        >每個節點都可以有子節點。

        >節點含有周期性回調方法(schedule、unschedule等)。

        >節點可以有動作(ccaction)。

    >ccnode可以為它自己和子節點添加額外的功能。

    >子節點可以有一些相對于父節點的動作(ccaction)。

4、場景類(ccscene)

    >ccscene類繼承自ccnode類。

>cctransitionscene類是ccscene類的子類,是切換場景類,提供許多場景切換時的效果函數。

>不要在節點初始化的ini函數中調用replacescene函數,導演類不允許在一個節點初始化的調用場景替換,否則會導緻程式奔潰。

>壓入場景(pushscene)和彈出場景(popscene)。他們都可以用來顯示場景和保留目前場景并顯示新場景;不同的是他們不把舊場景從記憶體中釋放掉,這樣可以提高加載速度,這時需要注意,如果記憶體不足的話,建議使用replacescene函數。

5、圖層類(cclayer)

圖層類(cclayer)是ccnode類的子類,并且在此基礎上實作觸屏事件代理(toucheventsdelegate)協定,可以實作ccnode類的供能,并且可以處理輸入,包括傳感器,加速度傳感器。

    >每個遊戲場景都可以有很多個圖層,每一層負責各自的任務。

    子類:

>顔色布景層類(cclayercolor):包含cclayer的功能,并提供兩個拓展功能,可以為布景層添加顔色,以及設定不透明度。

      >多層布景層類(cclayermultiplex):用來管理同一個場景中的不同layer!

>菜單類(ccmenu):ccmenu是一個菜單項的容器,用來裝載各種菜單項。菜單項可以是文字,圖檔!ccmenu還提供了alignitemsvertically和align-itemshorizontally等函數,分别表示垂直對齊和水準對齊。

        >控件類(cccontrol):

>拖動滑塊控件類(cccontrolslider);

  >顔色選擇盤控件類(cccontrolcolourpicker);

            >開關按鈕

控件類(cccontrolswitch);

            >按鈕控件類(cccontrolbutton);

6、精靈類(ccsprite)

    精靈類ccsprite是一張二維的圖檔對象,他可以用一張圖檔或者一張圖檔的一塊矩形部分來定義。

>貼圖類(cctexture2d);在openggl中稱圖檔為貼圖,在cocosd-x中cctextured就是圖檔對象的意思,可以通過它建立精靈等對象。cctexture2d類是精靈類和其相關基礎的基礎。

        >精靈批處理類(ccspritebatchnode);

>精靈幀類(ccspriteframe);精靈幀類的概念是相對于動畫兒産生的。一個精靈是固定節點,他可以擁有許多精靈幀,在他們之間切換就形成了動畫。

>精靈幀緩存類(ccspriteframecache);精靈幀緩存類ccspriteframecache用來存儲精靈幀,提前緩存起來有助于提高程式的效率。ccspriteframecache是一個單例模式,不屬于某個精靈類,是所有精靈共享使用的。

7、錄影機類(cccamera)

所有的節點都擁有一個錄影機類cccamera。隻有通過錄影機類,節點才能被渲染出來。當節點發生縮放旋轉和位置變化的時候,都需要覆寫cccamera類,讓cccamera類重新渲染。

注意:這裡需要說明的是,在三維效果中,使用cccamera類是可以的,但是如果隻是一些二維特效的話,那麼更推薦使用ccfollow類。

8、容器類

    >ccarray類可以了解成是一個數組的容器,裝載的對象隻要是ccobject的子類就可以。

    >ccdictionary字典類;

9、拖動漸隐效果類(ccmotionstreak)

10、繪制圖形

11、時間排程

12、動作類(ccaction)

    >有限時間動作(ccfinitetimeaction)

>瞬時動作(ccactioninstant):顧名思義,就是直接調用結果的動作,這中間不産生任何的動畫效果,其中執行回調函數。

        >延時動作(ccactioninterval):會在調用時形成動畫效果。

    >跟随(ccfollow)

    >移動速度(ccspeed)