閱讀635 返回首頁    go 技術社區[雲棲]


cocos2d-x一些核心概念介紹

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

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

導演

導演類Director(v3.0之前是CCDirector)用於管理場景對象采用單例設計模式在整個工程中隻有一個實例對象。由於是單例模式能夠保存一致的配置信息便於管理場景對象。獲得導演類Director實例語句如下

auto director = Director::getInstance();

導演對象職責如下訪問和改變場景訪問Cocos2d-x的配置信息訪問視圖對象暫停、繼續和停止遊戲轉換坐標。

Director類圖


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

 

場景

場景類Scene(v3.0之前CCScene)是構成遊戲的界麵類似於電影中的場景。場景大致可以分為以下幾類展示類場景。播放視頻或簡單的在圖像上輸出文字來實現遊戲的開場介紹、勝利和失敗提示、幫助介紹選項類場景主菜單、設置遊戲參數等遊戲場景。這是遊戲的主要內容。

從類圖可見Scene繼承了Node類Node是一個重要的類很多類都從Node類派生而來其中有Scene、Layer等。

 

層是我們寫遊戲的重點我們大約 99%以上的時間是在層上實現我們遊戲內容。層的管理類似於Photoshop中的圖層它也是一層一層疊在一起。下麵是一個簡單的主菜單界麵是由三個層疊加實現的。


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

下麵是層類Layer的類圖。


精靈

精靈類Sprite(v3.0之前CCSprite)是遊戲中非常重要的概念它包括了敵人、控製對象、靜態物體和背景等。 通常情況它會進行運動運動方式包括了移動、旋轉、放大、縮小和動畫等。

下麵是Sprite類圖從圖中可見Sprite是Node派生類Sprite包含很多類型例如物理引擎精靈類PhysicsSprite也都屬於精靈。

 

菜單

菜單在遊戲在是非常重要的概念它提供操作的集合在Cocos2d-x中菜單類是Menu從類圖可見Menu類派生於Layer。


在菜單中又包含了菜單項MenuItem從圖中可見菜單項MenuItem有很多種形式的子類如MenuItemLabel、MenuItemSprite和MenuItemToggle它表現出不同的效果。每個菜單項都有三個基本狀態正常、選種和禁止。


更多內容請關注最新Cocos圖書《Cocos2d-x實戰 C++卷》
本書交流討論網站https://www.cocoagame.net
更多精彩視頻課程請關注智捷課堂Cocos課程https://v.51work6.com
歡迎加入Cocos2d-x技術討論群257760386


《Cocos2d-x實戰 C++卷》現已上線各大商店均已開售

京東https://item.jd.com/11584534.html

亞馬遜https://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

當當https://product.dangdang.com/23606265.html

互動出版網https://product.china-pub.com/3770734

《Cocos2d-x實戰 C++卷》源碼及樣章下載地址

源碼下載地址https://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1 

樣章下載地址https://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

歡迎關注智捷iOS課堂微信公共平台

 


最後更新:2017-04-03 12:56:32

  上一篇:go cocos2d-x遊戲循環與調度
  下一篇:go IOS中導航在設置背景後多占用了64個像素問題