freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于cocos2d-x游戲引擎的小雞對(duì)抗游戲開發(fā)-在線瀏覽

2024-08-02 10:53本頁(yè)面
  

【正文】 CDirectorCaller(ios平臺(tái) ), CCEGLView。 首先是 CCDirector單例,它負(fù)責(zé)管理初始化OpenGL 渲染窗口以及游戲場(chǎng)景的流程控制,它是 cocos2dx 游戲開發(fā)中必不可少的類之一。而且場(chǎng)景的流程控制功能,也只需要存在一個(gè)這樣的場(chǎng)景控制對(duì)象即可。 接下來(lái)是 CCTextureCache單例。當(dāng)然,這樣做可能會(huì)很浪費(fèi)內(nèi)存,所以 cocos2dx采用了一種引用計(jì)數(shù)的方式來(lái)管理對(duì)象內(nèi)存,當(dāng)紋理剛被加載進(jìn)來(lái)的時(shí)候,引用計(jì)數(shù)為 1。這也是為什么在收到內(nèi)存警告的時(shí)候,會(huì)調(diào)用 CCTextureCache的 removeUnusedTextures 方法。單從字面上看, Cache,即緩存的意思。這種 cache技術(shù),在游戲開發(fā)中比比皆是。 二段構(gòu)建模式 構(gòu)建 模式 指的是 :將一個(gè)對(duì)象的構(gòu)建分為兩個(gè)步驟來(lái)進(jìn)行:分配內(nèi)存 和初始化。當(dāng)然,命名規(guī)范最好和 cocos2dx統(tǒng)一,即靜態(tài)工廠方法 [14]為 create,而初始化方法為 initXXXX。管理者模式其實(shí)是個(gè)混合模式,它綜合了單例模式、外觀模式和工廠模式。 此模式 提供一個(gè)統(tǒng)一的接口來(lái)管理一組相關(guān)對(duì)象的實(shí)例化和訪問(wèn)。之后需要使用的時(shí)候直接引用此動(dòng)作即可,前提是你得聲明許多 CCAnimate 對(duì)象的弱引用。這樣對(duì)于游戲中經(jīng)常變換狀態(tài)需要更換不同的動(dòng)畫時(shí),可以從此 CCAniamteCache類中獲取相應(yīng)動(dòng)畫引用,非常方便,同時(shí)可以提高游戲性能。但凡那些對(duì)象,在運(yùn)行時(shí)創(chuàng)建的時(shí)間開銷特別大時(shí),而又要經(jīng)常重復(fù)使用時(shí),都可以采取此模式來(lái)提高運(yùn)行時(shí)性能。它很好地體現(xiàn)了 “ 最少知識(shí)原則 ” 。 游戲開發(fā)過(guò)程中,暫時(shí)還沒(méi)發(fā)現(xiàn)此模式的明顯用法。如果讀者開發(fā)游戲過(guò)程中,積累出一套比較成熟的框架,而這個(gè)框架又可以劃分多個(gè)子系統(tǒng),比如碰撞子 系統(tǒng)、網(wǎng)絡(luò)子系統(tǒng)、數(shù)據(jù)持久化子系統(tǒng)等。ade類,來(lái)簡(jiǎn)化客戶程序與子系統(tǒng)之間的調(diào)用關(guān)系 。防御式編程是提高程序代碼質(zhì)量的一種手段, 實(shí)際上 它不能算是真正意義上的模式。必要的時(shí)候可以使用斷言來(lái)確保函數(shù)的先驗(yàn)條件是符合 假定的。但是,有時(shí)候,就不是那么幸運(yùn)了 。盡可能地定義 const定義常量或者使用宏定義。如果全部設(shè)計(jì)成 void 類型的函數(shù),那么出現(xiàn)異常要么就是 try— catch,要么就是直接讓程序崩潰了。最后,必要的時(shí)候要檢查函數(shù)里面調(diào)用其它子程序時(shí)的返回值 。 在 cocos2dx游戲開發(fā)中,我們考慮 cocos2dx中一個(gè)非常典型的應(yīng)用場(chǎng)景,你的 GameScene里面有兩個(gè) layer,一個(gè) gameLayer,它包含了游戲中的對(duì)象,比如玩家、敵人等。如何讓這兩個(gè)層相互通信 。 組合 模式 組合模式 指的是 :將對(duì)象組合成樹形結(jié)構(gòu)以表示 “ 部分整體 ” 的層次結(jié)構(gòu)。 因?yàn)橛螒蜷_發(fā)不是設(shè)計(jì)框架,基本上使用組合模式的情形不多。 中介者 模式 中介者 模式 指 的是 :用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。 游戲世界里的對(duì)象關(guān)系非常復(fù)雜,如果設(shè)計(jì)得不好,極容易形成強(qiáng)耦合。使用中介者模式可以減少游戲世界里面對(duì)象之間的多對(duì)多關(guān)系,使之轉(zhuǎn)變成多對(duì)一的關(guān)系 。把此類設(shè)計(jì)成單例類,可 以方便訪問(wèn),同時(shí),此類可以擁有像 gameScene,levelSaver等類的引用,方便其它對(duì)象與這些對(duì)象進(jìn)行交互 。 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 8 3 游戲總體分析與設(shè)計(jì) 游戲規(guī)則 玩法介紹 玩家可以通過(guò)移動(dòng)鼠標(biāo),拖拽道具到地圖上,將道具放在相應(yīng)的位置上,根據(jù)不同的道具有不同的功效,玩家采用不同的道具去捕捉病雞,但消滅完所有的病雞,游戲過(guò)關(guān),當(dāng)病雞的數(shù)量到達(dá)了 15只,或是總雞數(shù)達(dá)到了 20只,闖關(guān)失敗。于此同時(shí),還有一些母雞剛下下來(lái)的雞蛋(白色),以及剛孵化出來(lái)的小雞。 道具介紹 玩的過(guò)程中用戶可以使用道具去捕捉小雞,總共有三種道具,分別是炸彈,骷髏頭和藥水,炸彈的威力最大,一個(gè)炸彈可以涉及到的位置是地圖上的 9格,也就是以炸彈為中心的九宮格,它可以消滅到這格區(qū)域內(nèi)所有的小雞,骷髏頭是可以消滅它所在地方的一只小雞,而藥水則是可以使得感染上病毒的小雞恢復(fù)健康。 關(guān)卡限定 首次進(jìn)入游戲時(shí),只有綠色平原這個(gè)關(guān)卡場(chǎng)景是可以進(jìn)入的,其他的均不可進(jìn)入,只有完成了上一關(guān)卡,下一關(guān)卡才可以進(jìn)入,也就是開始我們只是可以看到游戲中總共有的場(chǎng)景,而每個(gè)場(chǎng)景的布局是未知的。 游戲總體設(shè)計(jì) 根據(jù)進(jìn)行的游戲規(guī)則和游戲關(guān)卡分析,我們根據(jù)分析結(jié)果開始進(jìn)行總體設(shè)計(jì)。先采用抽象機(jī)制將系統(tǒng)模塊化,同時(shí)運(yùn)用面向?qū)ο蟮乃枷?,將模塊細(xì)化,依此進(jìn)行開發(fā)工作。 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 9 游戲設(shè)計(jì)流程 游戲用場(chǎng)景樹的形式表現(xiàn)出來(lái),包括有菜單場(chǎng)景、關(guān)卡選擇 場(chǎng)景和游戲場(chǎng)景,這三個(gè)場(chǎng)景由導(dǎo)演管理。其結(jié)構(gòu)如圖 : 導(dǎo) 演滾 動(dòng) 圖 層背 景 精 靈返 回 菜 單 項(xiàng)結(jié) 束 游 戲 菜 單 項(xiàng)游 戲 介 紹 菜 單 項(xiàng)進(jìn) 入 關(guān) 卡 菜 單 項(xiàng)背 景 精 靈關(guān) 卡 選 擇 場(chǎng) 景游 戲 場(chǎng) 景菜 單 場(chǎng) 景小 雞 精 靈進(jìn) 入 游 戲 選 項(xiàng) 卡滑 動(dòng) 序 列 精 靈背 景 精 靈重 新 開 始 菜 單 項(xiàng)返 回 菜 單 項(xiàng)圖 游戲設(shè)計(jì)流程圖 游戲邏輯流程 游戲開始后進(jìn)入到菜單場(chǎng)景,在菜單場(chǎng)景中玩家可以選擇結(jié)束游戲、游戲介紹、 或是進(jìn)入到游戲關(guān)卡選擇中,進(jìn)入到關(guān)卡選擇場(chǎng)景后,玩可以根據(jù)自己的需要進(jìn)行關(guān)卡的選擇,不夠這個(gè)選擇也是有條件的,等級(jí)選擇完成后,玩家進(jìn)入到相應(yīng)的游戲場(chǎng)景中,進(jìn)入到游戲場(chǎng)景后,四種小雞在允許移動(dòng)的地方運(yùn)動(dòng),但公雞與母雞走到同一位置,便有一個(gè)雞蛋生成,玩家需要通過(guò)移動(dòng)右邊的道具到地圖上去消滅染有病毒的雞。 游戲開始 選擇點(diǎn)擊按鈕 當(dāng)選擇游戲介紹按鈕時(shí),進(jìn)入到游戲介紹的頁(yè)面 當(dāng)選擇退出游戲按鈕時(shí),為了防止是玩家不小心的動(dòng)作,從而中間又加入了一個(gè)判斷,若是選擇退 出游戲,則結(jié)束游戲,若否,則有回到最初的頁(yè)面 當(dāng)選擇進(jìn)入游戲關(guān)卡按鈕時(shí),直接進(jìn)入到游戲選擇關(guān)卡場(chǎng)景 其流程圖如圖 : 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 10 開 始菜 單 場(chǎng) 景結(jié) 束 游 戲繼 續(xù)游 戲 介 紹選 擇 關(guān) 卡 場(chǎng) 景游 戲 場(chǎng) 景道 具 生 成小 雞 移 動(dòng)雞 蛋 生 成 圖 游戲邏輯流程圖 游 戲 開 始點(diǎn) 擊 界 面 按 鈕游 戲 介 紹 頁(yè) 面點(diǎn) 擊 游 戲 介 紹是 否 退 出 游 戲點(diǎn) 擊 退 出 游 戲游 戲 結(jié) 束是游 戲 關(guān) 卡 場(chǎng) 景點(diǎn) 擊 進(jìn) 入 游 戲 關(guān) 卡 選 擇否 圖 Menu 選擇流程圖 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 11 關(guān)卡選擇流程如下: 進(jìn)入關(guān)卡選擇場(chǎng)景 進(jìn)行關(guān)卡的選擇 若點(diǎn)擊綠色平原,則進(jìn)入到綠色平原游戲場(chǎng)景中,否則可以向右滑動(dòng)屏幕到楓葉樹林關(guān)卡 若玩家之前已通過(guò)了綠色平原關(guān)卡且點(diǎn)擊了楓葉樹林關(guān)卡,則進(jìn)入 到楓葉樹林游戲場(chǎng)景中 若沒(méi)有點(diǎn)擊楓葉樹林關(guān)卡,則可以向左滑動(dòng)屏幕到綠色平原關(guān)卡,或者向右滑動(dòng)屏幕到寒冬之嶺關(guān)卡 若玩家之前已通過(guò)了楓葉樹林關(guān)卡且點(diǎn)擊了寒冬之嶺關(guān)卡,則進(jìn)入到寒冬之嶺游戲場(chǎng)景中 若沒(méi)有點(diǎn)擊寒冬之嶺關(guān)卡,則可以向左滑動(dòng)屏幕到楓葉樹林關(guān)卡,或者向右滑動(dòng)屏幕到黃金之路關(guān)卡 若玩家之前已通過(guò)了寒冬之嶺關(guān)卡且點(diǎn)擊了黃金之路關(guān)卡,則進(jìn)入到黃金之路游戲場(chǎng)景中 若沒(méi)有點(diǎn)擊黃金之路關(guān)卡,則可以向左滑動(dòng)屏幕到寒冬之嶺關(guān)卡 其流程圖如圖 : 游戲場(chǎng)景中主要是用定時(shí)器來(lái)控制小雞、雞蛋、道 具的產(chǎn)生以及消息和道具的移動(dòng)。 結(jié)構(gòu)圖如圖 : 菜 單 場(chǎng) 景背 景 精 靈游 戲 介 紹 按 鈕下 一 場(chǎng) 景 按 鈕退 出 游 戲 按 鈕 圖 菜單場(chǎng)景結(jié)構(gòu)圖 場(chǎng)景中采用的是單例模式,直接由一 個(gè)靜態(tài)的函數(shù)去創(chuàng)建一個(gè)場(chǎng)景,再將自己所定義的層加入到場(chǎng)景的孩子節(jié)點(diǎn)中,這里所用到的是 cocos2dx 節(jié)點(diǎn)管理, cocos2dx 使用節(jié)點(diǎn)組成一棵樹,渲染的時(shí)候要遍歷這棵樹。 GameStart* layer = new GameStart()。 sceneaddChild(layer)。 return scene。 b_SpritesetPosition(ccp(WIDTH/2, HEIGHT/2))。 三個(gè)菜單項(xiàng)的創(chuàng)建,實(shí)現(xiàn)代碼如下: CCMenuItemImage *pCloseItem = CCMenuItemImage::create( ,this, menu_selector(GameStart::menuCloseCallback))。 CCMenuItemImage *sItem = CCMenuItemImage::create( ,this, menu_selector(GameStart::get_start))。 CCMenuItemImage *rItem = CCMenuItemImage::create( ,this, menu_selector(GameStart::get_instruction))。 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 15 創(chuàng)建菜單,將上述的三個(gè)菜單項(xiàng)加入其中,進(jìn)行統(tǒng)一的管理,實(shí)現(xiàn)代碼如下: CCMenu* rMenu = CCMenu::create(rItem, NULL)。 thisaddChild pCloseItem (pCloseItem, sItem, rMenu, 1)。 CCSprite *b_Sprite = CCSprite::create()。 thisaddChild(b_Sprite, 0)。 rItemsetPosition(ccp(WIDTH 50, 50))。 rMenusetPosition(CCPointZero)。 此返回按鈕的回調(diào)函數(shù)的實(shí)現(xiàn)體就是將剛創(chuàng)建的孩子節(jié)點(diǎn)全部 清除,再重新的初始化界面 thisremoveAllChildren()。 游戲介紹的效果圖如圖 : 圖 游戲介紹效果圖 退出游戲的回調(diào)函數(shù),首先將初始化退出游戲的界面,實(shí)現(xiàn)代碼如下: 背景精靈的創(chuàng)建: b_Sprite = CCSprite::create()。 b_SpritesetOpacity(150)。 b_SpriteBg1 = CCSprite::create()。 b_SpriteBg1setOpacity(100)。 b_SpriteBg2 = CCSprite::create()。 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 17 thisaddChild(b_SpriteBg2)。 b_SpriteBg3setPosition(ccp(WIDTH/2, HEIGHT/2))。 確定退出游戲菜單項(xiàng)的創(chuàng)建: CCMenuItemImage* pYesItem = CCMenuItemImage::create( ,this, menu_selector(GameStart::menuYesCallback))。 取消退出游戲菜單項(xiàng)的創(chuàng)建: CCMenuItemImage* pNoItem = CCMenuItemImage::create( ,this, menu_selector(GameStart::menuNoCallback))。 pMenu = CCMenu::create( pYesItem, pNoItem, NULL)。 thisaddChild(pMenu)。 退出游戲的效果圖如圖 : 湖北科技學(xué)院本科畢業(yè)設(shè)計(jì) (論文 ):基于 Cocos2dx 的小雞對(duì)抗游戲開發(fā) 18 圖 退出游戲效果圖 關(guān)卡選擇按鈕的實(shí)現(xiàn)則是進(jìn)行場(chǎng)景的切換,使得有菜單場(chǎng)景切換到關(guān)卡選擇場(chǎng)景,實(shí)現(xiàn)代碼如下: CCDirector::sharedDirector()setDepthTest(true)。 關(guān)卡選擇場(chǎng)景的實(shí)現(xiàn) 在 關(guān)卡場(chǎng)景 中主要是關(guān)卡的選擇,關(guān)卡包括有: 綠色平原 、 楓葉樹林 、 寒冬之嶺 、 黃金之路 ,闖關(guān)的等級(jí)是用 xml文件來(lái)記錄的,每次進(jìn)入到關(guān)卡選擇場(chǎng)景時(shí)都需要讀取 xml文件中的內(nèi)容,因?yàn)楦鶕?jù)闖關(guān)的等級(jí)的不同,能進(jìn)入到的游戲場(chǎng)景也是不同的,只有當(dāng)上一等級(jí)通過(guò)了,下一等級(jí)的關(guān)卡才會(huì)被打開。由于本場(chǎng)景中用到了滑動(dòng)列表,因此,需創(chuàng)建一個(gè) CCScrollView
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1