天天看點

cocos2d-x一些核心概念截殺

cocos2d-x中有很多概念,這些概念很多來源于動畫、動漫和電影等行業,例如:導演、場景和層等概念,當然也有些有傳統的遊戲的概念。cocos2d-x中核心概念:導演, 場景,層,節點,精靈,菜單動作,效果,粒子運動,地圖,實體引擎。

下面我們介紹導演、場景、層、精靈、菜單概念以及對應的類,由于節點概念很重要我們會在下面詳細介紹,而其他的概念将在後面介紹。

導演類director(v3.0之前是ccdirector)用于管理場景對象,采用單例設計模式,在整個工程中隻有一個執行個體對象。由于是單例模式能夠儲存一緻的配置資訊,便于管理場景對象。獲得導演類director執行個體語句如下:

[html] 

auto director = director::getinstance();  

導演對象職責如下:通路和改變場景,通路cocos2d-x的配置資訊,通路視圖對象,暫停、繼續和停止遊戲,轉換坐标。

director類圖

cocos2d-x一些核心概念截殺

從類圖中還可以看到它有一個子類是displaylinkdirector。

場景類scene(v3.0之前ccscene)是構成遊戲的界面,類似于電影中的場景。場景大緻可以分為以下幾類:展示類場景。播放視訊或簡單的在圖像上輸出文字,來實作遊戲的開場介紹、勝利和失敗提示、幫助介紹,選項類場景,主菜單、設定遊戲參數等,遊戲場景。這是遊戲的主要内容。

從類圖可見scene繼承了node類,node是一個重要的類,很多類都從node類派生而來,其中有scene、layer等。

cocos2d-x一些核心概念截殺

層是我們寫遊戲的重點,我們大約

99%以上的時間是在層上實作我們遊戲内容。層的管理類似于photoshop中的圖層,它也是一層一層疊在一起。下面是一個簡單的主菜單界面是由三個層疊加實作的。

cocos2d-x一些核心概念截殺

為了讓不同的層可以組合産生統一的效果,這些層基本上都是透明或者半透明的。層的疊加是有順序的,如圖所示從上到下依次是:菜單層→精靈層→背景層。cocos2d-x是按照這個次序來疊加界面的。這個次序同樣用于事件響應機制,即菜單層最先接收到系統事件,然後是精靈層,最後是背景層。在事件的傳遞過程中,如果有一個層處理了該事件,則排在後面的層将不再接收到該事件了。每一層又可以包括很多各式各樣的内容要素:文本、連結、精靈、地圖等等内容。

下面是層類layer的類圖。

cocos2d-x一些核心概念截殺

精靈類sprite(v3.0之前ccsprite)是遊戲中非常重要的概念,它包括了敵人、控制對象、靜态物體和背景等。

通常情況它會進行運動,運動方式包括了:移動、旋轉、放大、縮小和動畫等。

下面是sprite類圖,從圖中可見sprite是node派生類,sprite包含很多類型,例如實體引擎精靈類physicssprite也都屬于精靈。

cocos2d-x一些核心概念截殺

菜單在遊戲在是非常重要的概念,它提供操作的集合,在cocos2d-x中菜單類是menu,從類圖可見menu類派生于layer。

cocos2d-x一些核心概念截殺

在菜單中又包含了菜單項menuitem,從圖中可見菜單項menuitem有很多種形式的子類,如menuitemlabel、menuitemsprite和menuitemtoggle,它表現出不同的效果。每個菜單項都有三個基本狀态:正常、選種和禁止。

cocos2d-x一些核心概念截殺

繼續閱讀