cocos2d-x-3.6 引擎基礎概念,cocos2d-x-3.6引擎

來源:互聯網
上載者:User

cocos2d-x-3.6 引擎基礎概念,cocos2d-x-3.6引擎

先講一下引擎裡面幾個重要的基礎概念:導演,節點,情境,層,精靈。當然實際開發人員會碰到很多其他概念,不過不要緊,有了這些基礎概念,後面自己學習起來就容易多了。

  • 節點(Node)是cocos2d-x裡面最基礎的一個類,遊戲中幾乎所有的類都派生自這個類,換句話說,遊戲裡面幾乎所有的遊戲對象都是一個節點。那麼如何管理這些遊戲對象呢,cocos2d-x引擎採用節點樹來管理所有的遊戲對象。看看一個遊戲裡面各元素的關係圖。這個不是類圖,可以看成是組織關係圖。

    一個遊戲由很多個遊戲情境組成,就像一個電影,每段故事情節都是在特定的情境下上演,拍攝的時候總是在一個場地實行。N多的遊戲情境組成一個遊戲,而負責組織這些情境的就是導演(Director),跟拍電影裡面的導演一樣。看圖,情境裡面會有很多層(Layer),層裡面會有很多精靈(Sprite)。這個可以這麼理解,一個電影情境,比如外景,有遠處的大背景,然後近景,環境光線,這些在遊戲裡面就可以用很多層來表現,遠景用一個層,近景一個層,環境光線一個層,這些層按照一定的層級順序顯示在螢幕上就組成了這個情境。然後層裡面有很多精靈,就是每個層裡面的內容都是一個個的精靈來表現的。不如遠景,有一排房子,有很多汽車在穿梭,那麼這一排房子是一個精靈,每個汽車是一個精靈。近景有一條狗在遊盪,這條狗就是一個精靈,環境光線裡面是一個月亮,這個月亮就是一個精靈。情境,層,精靈,本質上都是一個節點,因為他們都派生自節點類,所以,就是一個節點樹形結構。

  • 導演(Director)是一個單列類,整個遊戲生命週期中只有一個執行個體,而且不需要你手動建立執行個體,引擎初始化的時候就已經產生了整個導演類的執行個體。導演是整個遊戲的核心,就像拍電影的導演一樣,控制著整個遊戲的調度。遊戲中的一些常用操作就是由Director來控制的,比如OpenGL ES的初始化,情境的轉換,遊戲暫停繼續的控制,全局座標和GL座標之間的切換,對節點(遊戲元素)的控制等,還有一些遊戲資料的儲存調用,螢幕尺寸的擷取等。

  • 情境(Scene)是遊戲裡面的一幕幕情境,遊戲裡面發生的故事都會在情境裡。遊戲一幕幕啟動並執行單位是情境,所有啟動並執行遊戲元素都是放在遊戲情境裡面的。看看最簡單的helloworld怎麼用的,直接建立一個情境,導演執行這個情境。

    // create a scene. it's an autorelease object    auto scene = HelloWorld::createScene();    // run    director->runWithScene(scene);

再看看createScene這個函數的實現

Scene* HelloWorld::createScene(){    // 'scene' is an autorelease object    auto scene = Scene::create();    // 'layer' is an autorelease object    auto layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}

這裡首先建立一個Scene,然後建立一個層(HelloWorld),注意HelloWorld派生自Layer,所以它是一個層,然後把這個曾添加到情境(Scene)裡面,return這個情境(Scene)。那麼一個最簡單的HelloWorld情境就這個產生了。導演執行這個遊戲情境,就會顯示一個HelloWorld的頁面。

  • 層(Layer)和精靈(Sprite)。遊戲運行是一個情境一個情境來的,但是每個情境裡面又是用層來組織遊戲內容的,比如HelloWorld的情境,需要在情境裡面添加層,層裡面才是零碎的遊戲元素。在一個層裡面,基本所有的遊戲元素都是精靈,比如背景,使用一個背景圖產生的一個精靈,一個人物,也是用人物圖片產生的一個人物精靈,汽車,貓,狗,這些都是精靈。精靈(Sprite),是最普通的遊戲單位,並不僅僅是人物,這個要注意。

現在再來總結一下,cocos2dx管理遊戲對象的樹形結構。情境,層,精靈,這些都是節點(Node)的衍生類別,那麼他們其實都是節點。一個遊戲最簡單的結構是這樣的,建立一個情境(這是一個節點),情境裡面添加(add)一個層(又是一個節點),層裡面在添加精靈(又是節點),這麼這一層一層就是一個節點樹,導演執行情境,管理整棵節點樹。Over。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.