重開發人員的勞動成果。轉載的時候請務必註明出處:http://blog.csdn.net/haomengzhu/article/details/27706967
設計模式
遊戲中的基本元素app
在曾經文章中,咱們具體介紹了遊戲開發的概念以及 Cocos2d-x 與其它遊戲引擎的不一樣之處。甚至已經學會了它不同凡響的
內存管理機制。
想必你們已經很是期待開始探索 Cocos2d-x 遊戲開發的世界了。
在後面的文章中,咱們將結合詳細的實例,從 Cocos2d-x 遊戲開發的基本元素講起。
從這章開始,我會在學習引擎的過程當中和你們一步步建立《找小三》這個遊戲;
Director :郝萌主,一統江湖
從英語字面上理解,這是一個"導演"類,Director 是控制遊戲流程的主要組件。
回想引擎框架本身主動生成的HelloWorld 項目,程序生命週期中游戲載入期的最後一個方法 AppDelegate::applicationDidFinishLaunching,其代碼例如如下所看到的:
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director//初始化導演類
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create(FontChina::G2U("郝萌主之找小三"));
director->setOpenGLView(glview);
}
// turn on display FPS//啓用 FPS 顯示
director->setDisplayStats(false);
// set FPS. the default value is 1.0/60 if you don't call this
//設置 FPS 上限。假設不加設置,則默認 FPS 上限爲 60
director->setAnimationInterval(1.0 / 60);
// create a scene. it's an autorelease object
//建立一個場景,場景是一個 autorelease 對象
auto scene = HelloWorld::createScene();
// run
//執行場景
director->runWithScene(scene);
return true;
}
可以看到,事實上Director 的工做確實跟導演的工做很相似,Director 類主要負責下面工做。
一、遊戲呈現方面的設定,包含設定遊戲呈現的窗體、FPS 顯示、默認幀率上限、紋理顏色位寬等。
二、切換當前的遊戲場景,暫停或恢復遊戲場景的執行。
總而言之,遊戲在 Director 的管理下完畢了呈現設定與流程控制。
Director 扮演着武林萌主的角色,於是很是天然地採用了單例的設計模式,也就是說整個武林中就這一位。
在整個武林中、、、、哦,不,是在程序的不論什麼地方,都可以經過如下的簡單的代碼訪問到:
auto director = Director::getInstance();
在 Director 中,還定義了下面管理場景的方法。
runWithScene(Scene* scene):啓動遊戲,並執行 scene 場景。這種方法在主程序啓動時第一次啓動主場景時調用。
replaceScene(Scene* scene):直接使用傳入的 scene 替換當前場景來切換畫面,當前場景將被釋放。這是切換場景時
最常常使用的方法。
pushScene(Scene* scene): 將當前執行中的場景暫停並壓入到代執行場景棧中, 再將傳入的 scene 設置爲當前執行場景。
popScene:釋放當前場景。再從代執行場景棧中彈出棧頂的場景,並將其設置爲當前執行場景。假設棧爲空,則直接結束
應用。與 pushScene 成對使用,可以達到形如由主界面進入設置界面,而後回到主界面的效果。
pause:暫停當前執行場景中的所有計時器和動做,場景仍然會顯示在屏幕上。
resume:恢復當前執行場景中被暫停的計時器和動做。它與 pause 配合使用。框架
end:結束場景。同一時候退出應用。
值得注意的一點是,以上三種切換場景的方法(replaceScene、pushScene、popScene)均是先將待切換的場景全然載入完
畢後,纔將當前執行的場景釋放掉。
因此,在新場景剛好全然載入完成的瞬間,系統中同一時候存在着兩個場景,這將是對
內
存的一個考驗。若不注意的話,切換場景可能會形成內存不足。
PS:Director 的不少其它函數使用請查閱:cocos\2d\CCDirector.h
郝萌主友情提示:
遊戲中找到了小三。但是現實中千萬不要去找、、、
版權聲明:本文博客原創文章。博客,未經贊成,不得轉載。函數