【Cocos2dx開發(fā)】場景-創(chuàng)新互聯(lián)

【Cocos2dx開發(fā)】場景

寫在前面——有不對的地方,煩請大家批評指正,我也會繼續(xù)努力提高自己。如果轉載請注明出處,謝謝大家支持——Forward。

成都創(chuàng)新互聯(lián)專注于海淀網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供海淀營銷型網(wǎng)站建設,海淀網(wǎng)站制作、海淀網(wǎng)頁設計、海淀網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務,打造海淀網(wǎng)絡公司原創(chuàng)品牌,更為您提供海淀網(wǎng)站排名全網(wǎng)營銷落地服務。

我的微博——秦京一夢

從這一篇,我們開始對Cocos2dx做一個基礎系列的學習。

使用Cocos2dx進行游戲開發(fā),F(xiàn)orward個人感覺就如同畫畫一樣。一幅畫要展現(xiàn)出來,就必須有至少一個載體,同樣的,游戲中一個場景就是我們的一個載體。那么所謂的場景又是什么呢?帶著這個問題,我們開始進入今天的主題——場景CCScene。

在之前的博客中Forward有提到過,按照自己的學習方法,在深入學習某一的新的知識點之前,總是要對整體上先做一個認識,這樣對后期的學習會有很大的幫助。好的,為了有這樣一個整體的認識,我們先來看看自上而下有關場景類CCScene的一個類結構。

【Cocos2dx開發(fā)】場景

圖 1

上圖1中,我們可以看出,CCScene是繼承自CCLayer,而CCLayer則是由CCObject繼承而來。同時由于CCLayer本身繼承自CCTouchDelegate類,使其能夠處理Touch事件。這樣,就保證了CCScene能夠在做游戲基本載體的基礎上完成游戲過程中交互所必需的Touch事件的捕獲與處理了。

那么Cocos2dx游戲開發(fā)中是如何使用CCScene的呢?

首先我們創(chuàng)建一個Cocos2dx工程,配置路徑使之可以運行(Forward這里創(chuàng)建了一個SceneLayer工程),我們從程序的入口main文件看起。

  AppDelegate app;

  CCEGLView* eglView =CCEGLView::sharedOpenGLView();

  eglView->setFrameSize(480,320);

  intret = CCApplication::sharedApplication()->run();

這里我們注意到,程序一啟動就定義了一個AppDelegate對象。然后調(diào)用AppDelegate的run來運行。

在AppDelegate的run函數(shù)中做了什么呢?

  if(!applicationDidFinishLaunching())

  {

    return0;

  }

可能初學者會感覺比較繞,但是仔細看就會明白。SceneLayer工程中自定義了一個HelloWorld類,它是由CCLayer繼承而來。并通過類內(nèi)部的一個內(nèi)部的靜態(tài)變量CCScene作為游戲的主要載體來加載包括HelloWorld本身這個層以及其他游戲中的元素的。

我們進入AppDelegate.cpp中,就會發(fā)現(xiàn),原來主場景的創(chuàng)建就在applicationDidFinishLaunching中。

  CCScene *pScene =HelloWorld::scene();

  // run

  pDirector->runWithScene(pScene);

這樣就將一個場景CCScene載體創(chuàng)建出來了。(由于個人表達能力有限,或許在描述的過程中不夠詳細,希望大家能夠去讀源代碼,可能會感覺更加清晰易懂)。

明白了這一點。我們也依樣畫葫蘆,創(chuàng)建一個自己的場景TranslateScene出來。(為求簡便,F(xiàn)orward只是對HelloWorld類進行復制簡單修改并加入工程)。

創(chuàng)建這個場景用來做什么呢?其實這個例子的想法很簡單,就是通過點擊從一個場景切換到另外一個場景上去。這個過程中,F(xiàn)orward會選擇使用Cocos2dx中現(xiàn)有的一些場景切換特效來完成,希望通過這一個例子對場景的切換一些特效做一些簡單學習。

在這個例子中,我們主要使用的到的類如下(見圖2)。

【Cocos2dx開發(fā)】場景

圖 2

  這里我們看到的CCTransition及文件內(nèi)部的一些類,主要是與場景切換特效相關的一些使用類。如CCTransitionRotoZoom、CCTransitionJumpZoom等等。具體的API可以參考源代碼,F(xiàn)orward在這里就不做贅述了。

進入HelloWord的關閉按鈕回調(diào)函數(shù),我們做如下修改。

  CCScene*pTScene = TranslateScene::scene();

  CCTransitionRotoZoom*pTranslateScene = CCTransitionRotoZoom::create(3.0f,pTScene);

  CCDirector::sharedDirector()->replaceScene(pTranslateScene);

  這里我們首先創(chuàng)建了一個前面自定義的一個類TranslateScene對象,然后通過CCTransitionRotoZoom類來完成場景的跳轉(當然,我們需要包含對應頭文件)。

  看看執(zhí)行結果來一個感性認識吧。直接運行程序——

【Cocos2dx開發(fā)】場景

圖 3

  點擊右下角按鈕,進行場景切換——

【Cocos2dx開發(fā)】場景

圖 4

  我們看到場景上的圖片邊旋轉變縮小,知道看不見,然后TranlateScene場景顯示的信息邊旋轉邊放大直到剛好填充View窗口——

【Cocos2dx開發(fā)】場景

圖 5

  好的,今晚的基礎學習就先到這吧。是不是很簡單啊。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前標題:【Cocos2dx開發(fā)】場景-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://bm7419.com/article10/dscedo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、域名注冊商城網(wǎng)站、定制開發(fā)、自適應網(wǎng)站做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化