基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))_第1頁(yè)
基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))_第2頁(yè)
基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))_第3頁(yè)
基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))_第4頁(yè)
基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(設(shè)計(jì))本科畢業(yè)論文設(shè)計(jì)題目基于安卓平臺(tái)記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)院系電子工程與電氣自動(dòng)化學(xué)院專(zhuān)業(yè)電子科學(xué)與技術(shù)完成日期72013年5月10日巢湖學(xué)院本科畢業(yè)論文論文WEB網(wǎng)站并處理各種各樣的業(yè)務(wù)因此智能手機(jī)的應(yīng)用開(kāi)發(fā)在21世紀(jì)移動(dòng)互聯(lián)時(shí)代就顯得尤為重要此論文提出了一款基于安卓系統(tǒng)的記憶大爆炸游戲并通過(guò)解析這款游戲的開(kāi)發(fā)和實(shí)現(xiàn)來(lái)了解安卓系統(tǒng)的工作機(jī)制此種游戲?yàn)橐嬷穷?lèi)游戲其主要內(nèi)容有歡迎界面菜單選擇游戲設(shè)置開(kāi)始游戲游戲教程游戲退出等模塊并設(shè)計(jì)各個(gè)模塊的功能和實(shí)現(xiàn)方式降低模塊與模塊的內(nèi)聚主要對(duì)該游戲進(jìn)行總體的分析和設(shè)計(jì)對(duì)內(nèi)部算法的具體處理和詳細(xì)的計(jì)算進(jìn)行闡述運(yùn)用多線程技術(shù)對(duì)游戲中用到的安卓動(dòng)畫(huà)過(guò)程做具體介紹關(guān)鍵字安卓游戲動(dòng)畫(huà)DESIGNANDIMPLEMENTATIONOFMEMEORYGAMEOFTHEBIGBANGBASEDONTHEANDROIDPLATFORMABSTRACTALONGWITHTHERAPIDPOPULARITYOFSMARTPHONESINORDERTOMAKESMARTPHONEUSERSCANQUERYTHESERVICESPROVIDEDBYTHEINTERNETANYTIMEANDANYWHEREAHIGHLYEFFICIENTWAYISTOTHEFUNCTIONOFTHEAPPLICATIONSYSTEMDEVELOPMENTONTHEHANDSETKEEPTHECELLPHONECANBEMOBILEANDINTERNETACCESSTOTHEWEBSITEANDDEALWITHALLKINDSOFBUSINESSSOSMARTPHONEAPPLICATIONDEVELOPMENTINTHE21STCENTURYERAOFMOBILEINTERNETISPARTICULARLYIMPORTANTTHISPAPERPUTSFORWARDABASEDONANDROIDMEMORYGAMETOTHEBIGBANGANDTHROUGHANALYZINGTHEDEVELOPMENTANDIMPLEMENTATIONOFTHEGAMETOUNDERSTANDTHEWORKINGMECHANISMOFTHEANDROIDSYSTEMTHISGAMEFOREDUCATIONALCLASSESITSMAINCONTENTIS“WELCOMESCREEN“MENUSELECTION“GAMESETTINGS“STARTGAME“GAMETUTORIAL“EXITGAME“ANDOTHERMODULESANDDESIGNTHEVARIOUSMODULESFUNCTIONANDIMPLEMENTATIONAPPROACHREDUCETHEMODULEANDMODULECOHESIONMAINLYTOTHEOVERALLANALYSISANDDESIGNOFTHEGAMETHESPECIFICPROCESSINGOFINTERNALALGORITHMANDTHEDETAILEDCALCULATIONUSINGTHEMULTITHREADINGTECHNOLOGYTOUSEANDROIDINTHEGAMEANIMATIONPROCESSTOINTRODUCESPECIFICKEYWORDS目錄基于ANDROID平臺(tái)的記憶大爆炸游戲設(shè)計(jì)與實(shí)現(xiàn)I摘要I1緒論111研究意義112研究狀況與發(fā)展趨勢(shì)12ANDROID開(kāi)發(fā)前的準(zhǔn)備221系統(tǒng)需求分析222對(duì)性能的規(guī)定323ANDROID開(kāi)發(fā)環(huán)境33游戲界面設(shè)計(jì)431歡迎界面設(shè)計(jì)432菜單界面設(shè)計(jì)433游戲進(jìn)行中界面設(shè)計(jì)54游戲?qū)崿F(xiàn)641框架的搭建642歡迎界面實(shí)現(xiàn)843菜單界面實(shí)現(xiàn)9COM菜單主界面9COM游戲幫助界面11COM游戲關(guān)于界面12COM游戲設(shè)置界面12COM游戲成就界面13COM游戲退出1544游戲進(jìn)行中界面實(shí)現(xiàn)15COM游戲主界面15COM游戲過(guò)關(guān)界面19COM游戲失敗界面21COM游戲暫停界面2145加載界面實(shí)現(xiàn)225軟件運(yùn)行測(cè)試2451測(cè)試環(huán)境2452功能測(cè)試2453兼容性測(cè)試256總結(jié)25參考文獻(xiàn)27致謝28緒論ANDROID平臺(tái)的框架是由操作系統(tǒng)中間件用戶(hù)界面和應(yīng)用軟件組成底層的基礎(chǔ)為L(zhǎng)INUX內(nèi)核ANDROID系統(tǒng)的效果圖由C開(kāi)發(fā)并且只提供基本功能最上層為應(yīng)用軟件層包括通訊軟件程序等是由各公司用JAVA開(kāi)發(fā)GOOGLE通過(guò)與各軟硬件開(kāi)發(fā)商等建立合作伙伴的關(guān)系希望能建立標(biāo)準(zhǔn)的開(kāi)放式的移動(dòng)軟件平臺(tái)11研究意義手機(jī)的發(fā)展也帶動(dòng)了手機(jī)游戲產(chǎn)業(yè)的快速發(fā)展在人們的生活中有許多的游戲但不同的游戲會(huì)帶給玩家不同的感受和生活理念游戲時(shí)人們?nèi)粘I畹囊粋€(gè)必不可少的娛樂(lè)項(xiàng)目同時(shí)也帶動(dòng)了游戲相關(guān)產(chǎn)業(yè)市場(chǎng)的發(fā)展游戲平臺(tái)經(jīng)過(guò)從游戲機(jī)到電視游戲然后到PC游戲再到手機(jī)游戲中間經(jīng)歷了很多技術(shù)的更新和變革因?yàn)橹悄苁謾C(jī)的普及基于手機(jī)平臺(tái)的游戲也就擁有了巨大的市場(chǎng)空間也因隨著3G的開(kāi)通和應(yīng)用手機(jī)游戲必然會(huì)迎來(lái)新的一輪游戲熱潮ANDROID系統(tǒng)平臺(tái)作為當(dāng)下最為火熱的平臺(tái)本文擬設(shè)計(jì)一款游戲以深入理解ANDROID系統(tǒng)的工作機(jī)制JAVA語(yǔ)言作為一種跨平臺(tái)的語(yǔ)言可用于開(kāi)發(fā)ANDROID應(yīng)用通過(guò)本文亦希望能夠進(jìn)一步的理解掌握該語(yǔ)言此游戲是一款益智類(lèi)的游戲通過(guò)它深入理解游戲開(kāi)發(fā)的過(guò)程以及游戲開(kāi)發(fā)的架構(gòu)搭建理解安卓圖形動(dòng)畫(huà)音頻等的實(shí)現(xiàn)理解游戲開(kāi)發(fā)思路和實(shí)現(xiàn)技術(shù)12研究狀況與發(fā)展趨勢(shì)1997年出現(xiàn)了最早的手機(jī)游戲經(jīng)過(guò)了十幾年的發(fā)展和變革隨著手機(jī)移動(dòng)終端和移動(dòng)通信網(wǎng)絡(luò)的不斷進(jìn)步手機(jī)游戲正在經(jīng)歷由簡(jiǎn)單到復(fù)雜的演變過(guò)程帶動(dòng)移動(dòng)數(shù)據(jù)業(yè)務(wù)快速發(fā)展的手機(jī)娛樂(lè)服務(wù)伴隨著網(wǎng)絡(luò)和移動(dòng)終端性能的不斷提高呈現(xiàn)出快速增長(zhǎng)勢(shì)頭22010年中國(guó)的手機(jī)游戲玩家規(guī)模已經(jīng)突破了13億同比增長(zhǎng)5211同期的中國(guó)手機(jī)游戲的市場(chǎng)規(guī)模已達(dá)33億2011年中國(guó)的手機(jī)游戲玩家規(guī)模已達(dá)162億人伴隨著智能手機(jī)的普及和游戲獲取門(mén)檻的降低以及手機(jī)游戲在產(chǎn)品類(lèi)型和用戶(hù)體驗(yàn)上都有很大的提高未來(lái)中國(guó)手機(jī)游戲玩家的規(guī)模還有很大的上升空間2012年中國(guó)手機(jī)游戲玩家的規(guī)模已達(dá)213億中國(guó)手機(jī)的網(wǎng)絡(luò)游戲市場(chǎng)規(guī)模已達(dá)442億元隨著手機(jī)寬帶的不斷提速互聯(lián)網(wǎng)從PC過(guò)渡到手機(jī)的趨勢(shì)正在加快蔓延這也為手機(jī)游戲業(yè)的興起造就了新的商業(yè)機(jī)遇在移動(dòng)互聯(lián)網(wǎng)時(shí)代開(kāi)發(fā)者紛紛逃離營(yíng)運(yùn)商的束縛轉(zhuǎn)向利潤(rùn)較為豐厚的應(yīng)用程序和游戲開(kāi)發(fā)手機(jī)游戲軟件在消費(fèi)者中深受歡迎如果想在未來(lái)手機(jī)應(yīng)用程序開(kāi)發(fā)中實(shí)現(xiàn)規(guī)模則需要加大手機(jī)游戲方面的開(kāi)發(fā)力度手機(jī)游戲研發(fā)的重點(diǎn)是游戲情節(jié)和游戲界面游戲情節(jié)的創(chuàng)作依賴(lài)人的想象力和創(chuàng)造力行業(yè)競(jìng)爭(zhēng)的激烈也導(dǎo)致雷同的不少游戲情節(jié)出現(xiàn)這就要求創(chuàng)作人員不斷發(fā)揮才能從最初按鍵操縱到后來(lái)的屏幕多點(diǎn)觸控已是一個(gè)趨勢(shì)本文則是在多點(diǎn)觸碰操作靈感下的一款小游戲設(shè)計(jì)目前的ANDROID手機(jī)游戲可以大致分為經(jīng)營(yíng)策略動(dòng)作競(jìng)技休閑益智網(wǎng)絡(luò)模擬體育競(jìng)技射擊冒險(xiǎn)和角色扮演ANDROID開(kāi)發(fā)前的準(zhǔn)備21系統(tǒng)需求分析在ANDROID智能手機(jī)平臺(tái)上實(shí)現(xiàn)記憶大爆炸益智游戲玩家的目的是要記住禮物擺放的先后順序再根據(jù)記憶根據(jù)原來(lái)的順序依次點(diǎn)擊屏幕上的方塊以找到禮物從而獲取分?jǐn)?shù)在連擊時(shí)間槽耗盡之前找到所有禮物將形成連擊達(dá)成特定條件可以解鎖成就如果點(diǎn)擊順序錯(cuò)誤減少生命點(diǎn)數(shù)當(dāng)生命為零時(shí)游戲結(jié)束用以鍛煉人的記憶能力實(shí)現(xiàn)各個(gè)目標(biāo)的具體需求1游戲框架設(shè)計(jì)2剛進(jìn)入游戲時(shí)的歡迎界面設(shè)計(jì)與實(shí)現(xiàn)3菜單主界面的設(shè)計(jì)與實(shí)現(xiàn)4將菜單封裝成一個(gè)對(duì)象對(duì)菜單類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)5對(duì)一些通用界面通用的功能進(jìn)行統(tǒng)一處理的工具類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)6游戲進(jìn)行時(shí)界面的設(shè)計(jì)與實(shí)現(xiàn)7將物品封裝成一個(gè)對(duì)象對(duì)物品類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)8對(duì)游戲中用到的狀態(tài)機(jī)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)9數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)22對(duì)性能的規(guī)定在對(duì)游戲各個(gè)界面的設(shè)計(jì)過(guò)程中始終堅(jiān)持清晰了然由于是運(yùn)行在手機(jī)上面而不是電腦上面所以對(duì)游戲的性能要求就更加嚴(yán)格內(nèi)存的使用要盡量的低很多游戲在一開(kāi)始進(jìn)入游戲后就將所有的資源加載到游戲中這樣在后面的游戲過(guò)程中就不需要加載而直接從內(nèi)存中讀取數(shù)據(jù)但這樣有些資源用不到的情況下也被加載到內(nèi)存中對(duì)手機(jī)內(nèi)存的要求較高而本游戲通過(guò)只加載需要的資源部分來(lái)降低手機(jī)內(nèi)存的使用這樣就需要加載界面來(lái)加載需要的資源而沒(méi)用到的資源則不加載如果采用ANDROID系統(tǒng)的繪圖方式會(huì)發(fā)現(xiàn)繪制的圖片在移動(dòng)時(shí)會(huì)發(fā)生晃動(dòng)的情況雖然可以通過(guò)提高幀率的方式來(lái)減緩晃動(dòng)的幅度但不能從根本問(wèn)題上解決因?yàn)锳NDROID的繪圖是先將圖片繪制到畫(huà)布上再一同繪制到屏幕上所以為了解決由于移動(dòng)而帶來(lái)的晃動(dòng)問(wèn)題我通過(guò)旋轉(zhuǎn)畫(huà)布的方式在原坐標(biāo)系下可能沿著任意的方向移動(dòng)在新坐標(biāo)系下則始終沿著坐標(biāo)軸方向運(yùn)動(dòng)就不會(huì)出現(xiàn)晃動(dòng)問(wèn)題而內(nèi)存的開(kāi)銷(xiāo)方面相比之前并沒(méi)有過(guò)多的開(kāi)銷(xiāo)23ANDROID開(kāi)發(fā)環(huán)境ANDROID的上層應(yīng)用程序是用JAVA語(yǔ)言開(kāi)發(fā)同時(shí)還需要基于DALVIK虛擬機(jī)所以要用的是開(kāi)源的ECLIPSE集成工具和安全的JAVA語(yǔ)言當(dāng)然只有ECLIPSE還不夠因?yàn)槭鞘褂肑AVA語(yǔ)言進(jìn)行開(kāi)發(fā)還應(yīng)該有由SUN公司提供的JAVAJDKJAVA開(kāi)發(fā)所需要的開(kāi)發(fā)工具包此外ANDROID的應(yīng)用程序開(kāi)發(fā)和JAVA開(kāi)發(fā)有較大區(qū)別的所以還需要有GOOGLE提供的ANDROIDSDKANDROID平臺(tái)開(kāi)發(fā)所需要的開(kāi)發(fā)工具包同時(shí)還需要在ECLIPSE安裝ADT插件為ANDROID開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更是ECLIPSE下開(kāi)發(fā)工具的升級(jí)下載的工具簡(jiǎn)言之需要以下軟件才能搭建ANDROID開(kāi)發(fā)環(huán)境從而進(jìn)行ANDROID游戲的開(kāi)發(fā)1JAVAJDK2ECLIPSE3ANDROIDSDK4ADT插件游戲界面設(shè)計(jì)31歡迎界面設(shè)計(jì)歡迎界面是對(duì)用戶(hù)初進(jìn)入游戲的友好界面和游戲信息設(shè)置界面設(shè)計(jì)如下圖31歡迎界面設(shè)計(jì)框架32菜單界面設(shè)計(jì)菜單界面是對(duì)一些常用功能的一種集成能引導(dǎo)用戶(hù)更好地游戲提高用戶(hù)的體驗(yàn)度包括1開(kāi)始游戲點(diǎn)擊跳轉(zhuǎn)到游戲界面開(kāi)始游戲2游戲幫助簡(jiǎn)單介紹一下此游戲的一些基本功能和玩法3游戲關(guān)于對(duì)于本游戲的一些信息介紹4游戲設(shè)置玩家可以選擇是否打開(kāi)背景音樂(lè)5游戲成就在游戲過(guò)程中所獲得的獎(jiǎng)勵(lì)6退出點(diǎn)擊退出游戲菜單界面設(shè)計(jì)具體如下圖32菜單界面設(shè)計(jì)框架33游戲進(jìn)行中界面設(shè)計(jì)為了更好地吸引用戶(hù)提高用戶(hù)的體驗(yàn)度合理的設(shè)置游戲的難度和情節(jié)是有必要的在游戲的過(guò)程中適當(dāng)?shù)奶砑营?jiǎng)勵(lì)機(jī)制和懲罰機(jī)制過(guò)關(guān)時(shí)根據(jù)用戶(hù)的操作連擊點(diǎn)數(shù)來(lái)判斷其是否可獲得分?jǐn)?shù)和成就如果未能完成任務(wù)則生命將會(huì)減少界面設(shè)計(jì)如下圖33游戲中界面設(shè)計(jì)框架游戲?qū)崿F(xiàn)41框架的搭建在編寫(xiě)游戲代碼之前必須要仔細(xì)的理順?biāo)悸非逦臉?gòu)建出整個(gè)游戲的框架不然游戲開(kāi)發(fā)到最后總是千頭萬(wàn)緒一旦出現(xiàn)BUG就不知道該如何修改1借鑒MVC架構(gòu)思想將游戲分成四層將視圖即界面展示邏輯畫(huà)面的移動(dòng)數(shù)據(jù)保存和統(tǒng)一工具類(lèi)分開(kāi)來(lái)開(kāi)發(fā)這樣如果視圖出問(wèn)題了即界面繪制的位置有問(wèn)題只需要更改視圖層而不需要更改邏輯層和數(shù)據(jù)庫(kù)層每一個(gè)界面類(lèi)中都有PAINT繪圖方法和RUN邏輯處理方法將視圖和邏輯分開(kāi)以便于維護(hù)和修改使得代碼的可維護(hù)性和二次開(kāi)發(fā)容易度提高2游戲狀態(tài)機(jī)的實(shí)現(xiàn)方式是通過(guò)變量來(lái)控制當(dāng)前游戲狀態(tài)在游戲主線程中只更新繪制當(dāng)前游戲狀態(tài)下的內(nèi)容各界面的跳轉(zhuǎn)是通過(guò)狀態(tài)機(jī)來(lái)進(jìn)行的例如SWITCHGSGAMESTATUSCASEGSGAME_INTO游戲PAINTGAMEINTOGPBREAKCASEGSGAME_SUC過(guò)關(guān)PAINTGAMESUCGPBREAKCASEGSGAME_ERR失敗PAINTGAMEERRGPBREAKCASEGSGAME_PAUSE暫停GSGAMESTATUS來(lái)切換不同的界面而其他狀態(tài)下的邏輯將不執(zhí)行界面將不繪制通過(guò)狀態(tài)機(jī)能夠很方便的改變界面使得代碼也比較清晰可讀性較高3保存數(shù)據(jù)在游戲中需要長(zhǎng)期的存儲(chǔ)一些游戲生成的數(shù)據(jù)例如玩家對(duì)游戲背景音樂(lè)的開(kāi)關(guān)設(shè)置游戲過(guò)程中所獲得的成就和分?jǐn)?shù)剩余生命值所使用的特定功能次數(shù)等都需要保存首先創(chuàng)建一個(gè)類(lèi)MYHELPER在此類(lèi)中聲明數(shù)據(jù)庫(kù)的基本信息再通過(guò)DB類(lèi)建立更新和打開(kāi)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查等操作4工具類(lèi)的目的是將一些常用的方法封裝在一個(gè)類(lèi)中這些方法不依賴(lài)于任何界面并能在各個(gè)界面通用GS類(lèi)將各個(gè)界面所用到的狀態(tài)變量進(jìn)行統(tǒng)一管理PS類(lèi)系統(tǒng)配置參數(shù)管理包括系統(tǒng)配置固定參數(shù)字體聲音圖片和數(shù)據(jù)庫(kù)GAMEDATA類(lèi)游戲中的一些數(shù)據(jù)管理包括點(diǎn)陣字漸變效果和文本性文字單色等LAYERDATA類(lèi)對(duì)于每關(guān)的關(guān)卡數(shù)據(jù)進(jìn)行管理當(dāng)前所在的關(guān)卡總關(guān)卡該關(guān)分?jǐn)?shù)總分?jǐn)?shù)和當(dāng)前關(guān)的成就等UIB類(lèi)模擬ANDROID按鈕檢測(cè)矩形碰撞看手指是否點(diǎn)擊了該按鈕STRDATA類(lèi)各界面中用到的字符串SOUND類(lèi)背景音樂(lè)和音效的管理音樂(lè)的播放音樂(lè)停止以及對(duì)于音樂(lè)資源的加載和釋放COM框架COM框架COM層框架COM框架42歡迎界面實(shí)現(xiàn)畫(huà)面的動(dòng)態(tài)切換當(dāng)?shù)谝粡垐D片顯示的時(shí)間達(dá)到定值時(shí)通過(guò)更改狀態(tài)機(jī)來(lái)切換下一張圖片的顯示SWITCHLOGOSTATUSCASELOGO_PICIFLOGOTIMEO0LOGOTIMEOTGETTIMECELSEIFTGETTIMECLOGOTIMEOLOGODELAYLOGOTIMEOTGETTIMECLOGONUMCIFLOGONUMCLOGONUMOLOGONUMC0SETLOGOSTATUSLOGO_SOUNDCASELOGO_SOUNDBREAK43菜單界面實(shí)現(xiàn)當(dāng)用戶(hù)進(jìn)入此界面時(shí)根據(jù)用戶(hù)的需要來(lái)查看不同的功能幫助用戶(hù)了解游戲的操作COM菜單主界面COM菜單主界面1將圖中的各個(gè)菜單封裝成對(duì)象為MENU此對(duì)象擁有的屬性有繪制時(shí)的XY坐標(biāo)所代表的圖片下標(biāo)BITMAPINDEX所代表的的菜單下標(biāo)MENUINDEX動(dòng)畫(huà)移動(dòng)實(shí)現(xiàn)控制ISMOVEUP2菜單動(dòng)畫(huà)邏輯處理控制菜單上下移動(dòng)通過(guò)控制菜單對(duì)象中的Y坐標(biāo)和動(dòng)畫(huà)控制屬性在線程中不停的刷新來(lái)控制其上下擺動(dòng)控制菜單上下移動(dòng)FORI0IMOVEMENUARRAYXLENGTHIIFMOVEMENUARRAYXIGETYMENUDEFAULTY5MOVEMENUARRAYXISETMOVEUPFALSEELSEIFMOVEMENUARRAYXIGETYMENUDEFAULTY5MOVEMENUARRAYXISETMOVEUPTRUEIFMOVEMENUARRAYXIISMOVEUPMOVEMENUARRAYXISETYMOVEMENUARRAYXIGETY1ELSEMOVEMENUARRAYXISETYMOVEMENUARRAYXIGETY1控制菜單左右移動(dòng)當(dāng)點(diǎn)擊圖中向左向右方向時(shí)菜單相應(yīng)的平滑的向左向右移動(dòng)控制菜單向左移動(dòng)IFISMOVELEFTIFMENUDX150CLICKLEFTNUMMENUDX10CURMENUDY_N3CURMENUDY_C3ARROWDX25FORI0IMOVEMENUARRAYXLENGTHIIFMOVEMENUARRAYXIGETX20MOVEMENUARRAYXISETXSHARECOMINARRAYMOVEMENUARRAYX150MOVEMENUARRAYXISETXMOVEMENUARRAYXIGETX10ELSEINITMOVELEFT控制菜單向右移動(dòng)IFISMOVERIGHTIFMENUDX150CLICKRIGHTNUMMENUDX10CURMENUDY_N3CURMENUDY_C3ARROWDX25FORI0IMOVEMENUARRAYXLENGTHIIFMOVEMENUARRAYXIGETXW_FIXED50MOVEMENUARRAYXISETXSHARECOMINARRAYMOVEMENUARRAYX150MOVEMENUARRAYXISETXMOVEMENUARRAYXIGETX10ELSEINITMOVERIGHTCOM游戲幫助界面COM游戲幫助界面當(dāng)用戶(hù)不知如何玩此游戲時(shí)可通過(guò)該幫助界面了解到此游戲的玩法和規(guī)則點(diǎn)擊幫助菜單將會(huì)提示我們應(yīng)該如何進(jìn)行操作文字滾動(dòng)動(dòng)畫(huà)邏輯處理使用ANDROID系統(tǒng)的截圖方法固然可以解決滾動(dòng)動(dòng)畫(huà)但直接使用系統(tǒng)級(jí)的方法總是那樣的繁瑣自定義一個(gè)類(lèi)工具類(lèi)TOOLPIC里面封裝一個(gè)方法PAINTREGIONIMAGE方法用于處理圖片的截取和顯示PUBLICVOIDPAINTREGIONIMAGECANVASGPAINTPBITMAPBINTSRCXINTSRCYINTSRCWINTSRCHINTABSXINTABSYINTANCHORGSAVESRCSETSRCXSRCYSRCXSRCWSRCYSRCHSWITCHANCHORCASEANCHOR_CHV中心點(diǎn)繪制DSTSETABSXSRCW2ABSYSRCH2ABSXSRCW2ABSYSRCH2BREAKCASEANCHOR_LU左上角繪制DSTSETABSXABSYABSXSRCWABSYSRCHBREAK其他GDRAWBITMAPBSRCDSTPGRESTORE幫助文字從下往上滾動(dòng)邏輯實(shí)現(xiàn)通過(guò)控制截取的起始坐標(biāo)來(lái)實(shí)現(xiàn)滾動(dòng)PUBLICVOIDRUNHELPHELPTEXTSTARTYIFHELPTEXTSTARTY581HELPTEXTSTARTY305COM游戲關(guān)于界面COM游戲關(guān)于界面關(guān)于界面是對(duì)游戲的一些基本信息做一個(gè)簡(jiǎn)要說(shuō)明COM游戲設(shè)置界面COM游戲設(shè)置界面設(shè)置界面對(duì)于游戲的背景聲音進(jìn)行設(shè)置COM游戲成就界面COM游戲成就界面當(dāng)在游戲中連擊數(shù)達(dá)到一定時(shí)就能獲得獎(jiǎng)勵(lì)成就成就界面翻頁(yè)動(dòng)畫(huà)的實(shí)現(xiàn)翻書(shū)的效果可以看成是由一定的動(dòng)作幀組成每幀的大小相同這些幀在線程中不斷地刷新就能形成連續(xù)的畫(huà)面PAGETURNINGINDEX記錄翻頁(yè)的哪一幀總共有6幀PRIVATEVOIDRUNACHIEVE向左翻頁(yè)或向右翻頁(yè)邏輯處理IFISPAGEMOVELEFTISPAGEMOVERIGHTPAGETURNINGINDEXIFPAGETURNINGINDEX6PAGETURNINGINDEX1ISPAGEMOVELEFTFALSEISPAGEMOVERIGHTFALSE翻頁(yè)繪制實(shí)現(xiàn)繪制翻頁(yè)動(dòng)畫(huà)ISTRANSFORM是否將圖片變?yōu)殓R像圖片PRIVATEVOIDPAINTTURNINGPAGECANVASGPAINTPBOOLEANISTRANSFORMSWITCHPAGETURNINGINDEXCASE0PAINTPAGEGPPICIMAGESRCS36677349TANCHOR_CHVISTRANSFORMBREAKCASE1PAINTPAGEGPPICIMAGESRCS37656328TANCHOR_CHVISTRANSFORMBREAKCASE2PAINTPAGEGPPICIMAGESRCS38636305TANCHOR_CHVISTRANSFORMBREAKCASE3PAINTPAGEGPPICIMAGESRCS39W_FIXED3410H_FIXED240TANCHOR_CHVISTRANSFORMBREAKCASE4PAINTPAGEGPPICIMAGESRCS40W_FIXED34PICIMAGESRCS40GETWIDTH2H_FIXED250TANCHOR_CHVISTRANSFORMBREAKCASE5PAINTPAGEGPPICIMAGESRCS41W_FIXED2PICIMAGESRCS41GETWIDTH220H_FIXED210TANCHOR_CHVISTRANSFORMBREAK繪制頁(yè)面翻轉(zhuǎn)動(dòng)畫(huà)PRIVATEVOIDPAINTPAGECANVASGPAINTPBITMAPBINTXINTYINTANCHORBOOLEANISMIRRORTRANSIFISMIRRORTRANS通過(guò)統(tǒng)一工具類(lèi)TOOLPIC類(lèi)來(lái)繪制COMTIMAGEGPBW_FIXEDXYANCHORTTRANS_MIRRORELSECOMTIMAGEGPBXYANCHORCOM游戲退出COM游戲退出界面當(dāng)用戶(hù)需要退出游戲時(shí)通過(guò)此界面退出可以將該游戲所占用的資源全部釋放掉PRIVATEVOIDDISDATA暫做釋放處理MUAUPLCOMADATAPICSYSTEMANULLPICCLEARSRCSCOMROYDRAWINGCACHETCVNULLTLOGTAGLOGKEY“釋放“44游戲進(jìn)行中界面實(shí)現(xiàn)COM游戲主界面COM游戲主界面游戲進(jìn)行中的界面類(lèi)為GAMECANVAS此類(lèi)可以說(shuō)是整個(gè)游戲的最重要的部分整個(gè)繪制背景物品的擺放動(dòng)畫(huà)時(shí)間進(jìn)度條的改變和用戶(hù)操作都封裝在此類(lèi)中在這個(gè)類(lèi)中用戶(hù)主要是觀察物品出現(xiàn)的順序在進(jìn)行相應(yīng)的操作如果如果忘記了物品順序則可以通過(guò)重新播放來(lái)重新觀察當(dāng)然該功能有次數(shù)限制1時(shí)間進(jìn)度條的動(dòng)畫(huà)實(shí)現(xiàn)從放置物品開(kāi)始計(jì)時(shí)在規(guī)定的時(shí)間范圍內(nèi)能正確的依次找出所放物品的位置才能完成任務(wù)時(shí)間進(jìn)度條邏輯處理記錄系統(tǒng)當(dāng)前時(shí)間并比較IFTGETTIMECCURSYSTEMTIMESYSTEMWAITTIMECURSYSTEMTIMETGETTIMECIFUSETIMETIMEUSETIMEIFUSETIMETIMEUSETIMETIME通過(guò)CANVAS對(duì)指定大小的矩形在畫(huà)布指定位置上進(jìn)行切割顯示以實(shí)現(xiàn)進(jìn)度動(dòng)畫(huà)GSAVE在畫(huà)布上切割指定大小的矩形GCLIPRECTW_FIXED2PICIMAGESRCS69GETWIDTH20W_FIXED2PICIMAGESRCS69GETWIDTH2PROGRESSDEFAULTWIDTHUSETIMETIME480繪制時(shí)間進(jìn)度條COMTIMAGEGPPICIMAGESRCS69W_FIXED2PROGRESSDEFAULTHEIGHT2TANCHOR_CHVGRESTORE2物品放置動(dòng)畫(huà)實(shí)現(xiàn)物品出現(xiàn)的位置是隨機(jī)的按照關(guān)卡的上升的方式計(jì)算以獲得在該關(guān)卡下的物品出現(xiàn)的個(gè)數(shù)物品會(huì)按照時(shí)間間隔依次出現(xiàn)物品縮放動(dòng)畫(huà)當(dāng)物品開(kāi)始出現(xiàn)時(shí)會(huì)有由小變大的過(guò)程IFISSCALEIFSCALE1SCALEELSEISSCALEFALSESCALE5ORDERBITMAPSGETORDERBITMAPSSIZE1SETSCALEDFALSE放置物品每隔一段時(shí)間通過(guò)TGETRANDOM方法獲得隨機(jī)數(shù)生成物品放置的位置為保證隨機(jī)數(shù)產(chǎn)生的數(shù)都不相同將物品放置的每個(gè)可能的位置放到GRIDNUMREMIND的列表中當(dāng)隨機(jī)到一個(gè)位置后將GRIDNUMREMIND列表中的相同的位置移除掉以保證下次的產(chǎn)生的隨機(jī)位置不重復(fù)當(dāng)物品放置完成后物品會(huì)隱藏起來(lái)等待用戶(hù)去尋找PRIVATEVOIDPUTGOODSIFTGETTIMECCURTIMEWAITTIMEISSCALETRUECURGOODSNUMIFCURGOODSNUMORDERGOODSNUMISPUTGOODSDOWNTRUECURGOODSNUM0FORGAMEINFOINFOORDERBITMAPSINFOSETVISIBLEFALSERETURNCURTIMETGETTIMECJTGETRANDOMGRIDNUMREMINDSIZEORDERBITMAPSADDNEWGAMEINFOGRIDNUMREMINDGETJTGETRANDOMGOODS82TRUEGRIDNUMREMINDREMOVEJ3物品放完觸碰檢測(cè)當(dāng)物品放置完成后將接受用戶(hù)的觸屏檢查如果點(diǎn)擊的位置順序與物品放置時(shí)的順序相同則會(huì)有相應(yīng)的獎(jiǎng)勵(lì)過(guò)關(guān)成功如果點(diǎn)擊順序錯(cuò)誤生命值減少過(guò)關(guān)失敗碰撞檢測(cè)為了提高游戲運(yùn)行的效率降低消耗手機(jī)內(nèi)存采用矩形碰撞檢測(cè)方法判斷觸摸點(diǎn)是否在矩形范圍內(nèi)PUBLICBOOLEANISPOINTINRECTINTXINTYRECTRRETURNXRLEFTXRRIGHTYRTOPYRBOTTOM當(dāng)點(diǎn)中了了物品所在的位置顯示出隱藏的物品并獲得相應(yīng)的分?jǐn)?shù)以及初始化加分動(dòng)畫(huà)的控制變量如果將所有隱藏的物品都找到則游戲過(guò)關(guān)CURGOODSNUM點(diǎn)擊位置正確將隱藏的物品顯示出來(lái)ORDERBITMAPSGETGRIDCLICKLISTSIZE1SETVISIBLETRUE獲得分?jǐn)?shù)CURRENTSCORE10SCORE10控制加分動(dòng)畫(huà)變量ISSCORECHANGETRUEADDSCOREDY0GRIDINDEXOFADDSCOREORDERBITMAPSGETGRIDCLICKLISTSIZE1GETGRIDINDEX當(dāng)沒(méi)點(diǎn)中物品所在的位置時(shí)生命值減少如果生命值為零則將狀態(tài)機(jī)改為失敗界面游戲結(jié)束IFGRIDCLICKLISTGETGRIDCLICKLISTSIZE1ORDERBITMAPSGETGRIDCLICKLISTSIZE1GETGRIDINDEX如果沒(méi)有點(diǎn)中CLICKWRONGGRIDINDEXGRIDCLICKLISTGETGRIDCLICKLISTSIZE1IFLIFE0LIFEISLIFECHANGETRUEELSEIFISLIFECHANGEGSGAMESTATUSGSGAME_ERR4加分生命值改變動(dòng)畫(huà)實(shí)現(xiàn)當(dāng)正確點(diǎn)擊物品位置后會(huì)獲取一定的分?jǐn)?shù)分?jǐn)?shù)或生命上升一段距離后消失通過(guò)ISSCORECHANGE或ISLIFECHANGE來(lái)控制動(dòng)畫(huà)是否顯示如果都為T(mén)RUE則動(dòng)畫(huà)開(kāi)始否則不繪制加分動(dòng)畫(huà)IFISSCORECHANGEIFADDSCOREDY20ADDSCOREDY2ELSEISSCORECHANGEFALSE生命值更改IFISLIFECHANGEIFLIFECHANGEDY40LIFECHANGEDY2ELSEISLIFECHANGEFALSELIFECHANGEDY0COM游戲過(guò)關(guān)界面COM游戲過(guò)關(guān)界面此界面為用戶(hù)完成一關(guān)后對(duì)用戶(hù)的得分情況以及獎(jiǎng)勵(lì)情況作說(shuō)明如果獲得成就成就就會(huì)從天而降有種震動(dòng)屏幕的效果成就動(dòng)畫(huà)實(shí)現(xiàn)通過(guò)線程刷幀不斷地改變成就圖所繪制的坐標(biāo)來(lái)實(shí)現(xiàn)從天而降的動(dòng)畫(huà)IFDOUBLEHINTY180控制成就圖片的移動(dòng)邏輯DOUBLEHINTY20ELSE屏幕震動(dòng)效果SHAKINGSCREEN控制連擊數(shù)IFDOUBLEHINTX300DOUBLEHINTX50CURTIMETGETTIMECELSEIFTGETTIMECCURTIME800DOUBLEHINTX50屏幕震動(dòng)效果SHAKINGSCREEN抖屏的目的是成就或連擊從移動(dòng)到突然停止時(shí)有種打到屏幕上產(chǎn)生晃動(dòng)的效果控制屏幕圖片左右移動(dòng)的次數(shù)IFCENTERXMOVETIMES0CENTERXMOVETIMESELSECENTERX400RETURN控制屏幕背景圖片繪制的X坐標(biāo)左右來(lái)回變化來(lái)達(dá)到抖屏的目的IFCENTERDX0ISCENTERMOVELEFTTRUEELSEIFCENTERDX0ISCENTERMOVELEFTFALSEIFISCENTERMOVELEFTCENTERDX2ELSECENTERDX2CENTERXCENTERDXCURTIMETGETTIMECCOM游戲失敗界面COM游戲失敗界面此界面為用戶(hù)過(guò)關(guān)失敗后游戲結(jié)束四個(gè)大字將從小放大達(dá)到一定的大小將產(chǎn)生抖屏效果動(dòng)畫(huà)縮放的處理CANVAS中通過(guò)MATRIX的矩陣運(yùn)算對(duì)畫(huà)布進(jìn)行縮放處理并在操作前后需要加入SAVE方法保存當(dāng)前的設(shè)置和RESTORE方法恢復(fù)上次SAVE中保存畫(huà)布的狀態(tài)COM游戲暫停界面COM游戲暫停界面當(dāng)用戶(hù)正在游戲時(shí)突然臨時(shí)有事或突然接到電話(huà)這時(shí)游戲處于暫停狀態(tài)如需繼續(xù)可點(diǎn)擊繼續(xù)游戲或回主菜單退出游戲45加載界面實(shí)現(xiàn)圖45游戲加載界面加載界面是游戲從一個(gè)主界面到另一個(gè)主界面時(shí)對(duì)即將進(jìn)入的主界面里的資源進(jìn)行初始化的過(guò)度界面通過(guò)創(chuàng)建一個(gè)線程來(lái)加載需要的資源而不是在主線程中加載目的是防止耗時(shí)的任務(wù)會(huì)卡死界面導(dǎo)致程序停止運(yùn)行對(duì)于手機(jī)性能非常好的手機(jī)可以通過(guò)一次加載全部的資源來(lái)省去過(guò)度界面的等待時(shí)間也是一件好事但對(duì)于手機(jī)性能不好的手機(jī)有時(shí)會(huì)直接運(yùn)行不了因?yàn)閮?nèi)存開(kāi)銷(xiāo)太大了所以加載界面加載部分資源非常適合用于性能不好的手機(jī)1資源的釋放與加載PRIVATEVOIDREFDATA獲取LOADING切換時(shí)的狀態(tài)INTLOADINGSTATUSLOADINGCANVASSTATUS釋放點(diǎn)陣字緩存COMRVSFONT各界面釋放資源GAMELOGOCANVASDISINGDATAGAMEMENUCANVASDISINGDATAGAMECANVASDISINGDATA載入指定界面的資源SWITCHLOADINGSTATUSCASELOADINGCANVASLOGO歡迎界面資源加載GAMELOGOCANVASLOADINGDATABREAKCASELOADINGCANVASMENU菜單界面資源加載GAMEMENUCANVASLOADINGDATABREAKCASELOADINGCANVASGAME游戲運(yùn)行中資源加載GAMECANVASLOADINGDATABREAKDEFAULTBREAK2通過(guò)新線程去加載資源創(chuàng)建一個(gè)RUNNABLE實(shí)例并通過(guò)創(chuàng)建THREAD實(shí)例來(lái)創(chuàng)建一個(gè)線程用以加載耗時(shí)的資源PUBLICRUNNABLERB2NEWRUNNABLEPUBLICVOIDRUNREFDATAISLOADINGFALSE3當(dāng)資源加載完成并加載進(jìn)度條到達(dá)最大值時(shí)界面跳轉(zhuǎn)到指定的界面上更改狀態(tài)機(jī)通過(guò)狀態(tài)機(jī)去管理要到達(dá)的界面IFMAINACTICOMADINGPROGRESSTEMPPROGRESSOSWITCHSTATUSCASELOGOMAINACTICOMIMPL1BREAKCASEMENUMAINACTICOMIMPL2BREAKCASEGAMEMAINACTICOMIMPL3BREAK軟件運(yùn)行測(cè)試游戲測(cè)試的目的主要是測(cè)試游戲界面是否與設(shè)計(jì)的效果相吻合運(yùn)行的效果是否良好功能是否完善性能是否穩(wěn)定51測(cè)試環(huán)境硬件裝有ANDROID40系統(tǒng)的索尼MT25I手機(jī)一部USB線一根電腦一臺(tái)通過(guò)USB保持相連并處于同步狀態(tài)軟件ECLIPSE37ANDROID22SDK索尼MT25I手機(jī)驅(qū)動(dòng)在手機(jī)系統(tǒng)調(diào)試狀態(tài)下可以保持手機(jī)和電腦連接后同步通過(guò)ECLIPSE中DDMS裝置可以對(duì)游戲畫(huà)面進(jìn)行截屏通過(guò)LOGCAT日志打印可以對(duì)游戲運(yùn)行情況進(jìn)行分析52功能測(cè)試功能測(cè)試又叫黑盒測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試只需要考慮各個(gè)功能實(shí)現(xiàn)情況而不需要去考慮整個(gè)程序的結(jié)構(gòu)和代碼游戲的功能測(cè)試需要測(cè)試游戲的功能是否完整各項(xiàng)功能是否與預(yù)期相符包括游戲功能測(cè)試游戲兼容性測(cè)試判斷條件測(cè)試數(shù)據(jù)庫(kù)數(shù)據(jù)測(cè)試畫(huà)面分辨率測(cè)試測(cè)試后與設(shè)計(jì)基本相符部分有些不一樣有待改進(jìn)53兼容性測(cè)試就是在不同型號(hào)手機(jī)和不同ANDROID版本上測(cè)試游戲看是否可以順利完整的運(yùn)行通過(guò)該測(cè)試使游戲能適應(yīng)更多的機(jī)型從而被更多的玩家接受手機(jī)名稱(chēng)ANDROID版本兼容性索尼MT25ICOM兼容華為U886040兼容三星S5600COM兼容圖53兼容性測(cè)試總結(jié)在開(kāi)始編碼程序前期設(shè)計(jì)整體游戲框架結(jié)構(gòu)給每個(gè)模塊明確分工以面向?qū)ο蟮乃枷敕治龊徒鉀Q問(wèn)題的過(guò)程令我的編

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論