畢業(yè)設(shè)計(jì)(論文)-Android版手機(jī)游戲2048.doc_第1頁
畢業(yè)設(shè)計(jì)(論文)-Android版手機(jī)游戲2048.doc_第2頁
畢業(yè)設(shè)計(jì)(論文)-Android版手機(jī)游戲2048.doc_第3頁
畢業(yè)設(shè)計(jì)(論文)-Android版手機(jī)游戲2048.doc_第4頁
畢業(yè)設(shè)計(jì)(論文)-Android版手機(jī)游戲2048.doc_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

全套設(shè)計(jì)加扣 3012250582湖南軟件職業(yè)學(xué)院 畢業(yè)設(shè)計(jì) 畢業(yè)選題: Android版手機(jī)游戲2048 指導(dǎo)教師: 學(xué)生姓名: 院系名稱: 軟件工程系 專業(yè)班級: Java1304 學(xué)生學(xué)號: 提交日期: 2015年12月 19 日 目 錄一、 緒 論- 1 -1.1 背景- 1 -1.1.1 手機(jī)的應(yīng)用市場發(fā)展現(xiàn)狀- 1 -1.1.2 國內(nèi)外現(xiàn)狀- 1 -1.1.3 課題意義- 2 -1.2 本章小結(jié)- 2 -二、 開發(fā)環(huán)境的介紹和搭建- 3 -2.1 開發(fā)環(huán)境的介紹- 3 -2.1.1 JDK的介紹- 3 -2.1.2 Eclipse的介紹- 3 -2.1.3 Android SDK的介紹- 3 -2.2 開發(fā)環(huán)境的搭建- 3 -2.2.1 JDK的安裝與環(huán)境變量配置- 4 -2.2.2 Android SDK 與Eclipse的安裝與配置- 4 -2.2.3 Android虛擬機(jī)AVD的配置- 4 -2.3 本章小結(jié)- 6 -三、 系統(tǒng)的需求分析和概要設(shè)計(jì)- 7 -3.1系統(tǒng)需求分析- 7 -3.1.1系統(tǒng)功能需求分析- 7 -3.1.2游戲基本規(guī)則- 8 -3.2系統(tǒng)概要設(shè)計(jì)- 8 -3.2.1系統(tǒng)流程的設(shè)計(jì)- 8 -3.2.2系統(tǒng)模塊設(shè)計(jì)- 10 -3.2.2.1 菜單設(shè)計(jì)- 10 -3.2.2.2界面設(shè)計(jì)- 11 -3.2.2.3算法設(shè)計(jì)- 11 -3.3 本章小結(jié)- 13 -四、 系統(tǒng)實(shí)現(xiàn)- 14 -4.1 開始界面的實(shí)現(xiàn)- 14 -4.2游戲界面的實(shí)現(xiàn)- 15 -4.3 游戲滑屏卡片移動的實(shí)現(xiàn)- 16 -4.4 重新開始游戲功能的實(shí)現(xiàn)- 23 -4.5 關(guān)卡的實(shí)現(xiàn)- 26 -4.6 游戲幫助的實(shí)現(xiàn)- 28 -4.7 本章小結(jié)- 30 -五、 測 試- 31 -5.1 游戲系統(tǒng)測試- 31 -5.1.1游戲流程測試- 31 -5.1.2 游戲模式- 32 -5.2 本章小結(jié)- 34 -六、 總結(jié)與展望- 35 -6.1 論文總結(jié)- 35 -6.2 展 望- 35 -參考文獻(xiàn)- 36 -致 謝- 38 -ii一、 緒 論1.1 背景1.1.1 手機(jī)的應(yīng)用市場發(fā)展現(xiàn)狀隨著3G的越來越普及以及手機(jī)應(yīng)用的日益豐富還有智能水平的不斷的提高,從便攜性和隨身性這兩方面來考慮,電腦所帶來的體驗(yàn)已經(jīng)不能跟手機(jī)相提并論了,他已經(jīng)完美的超過了電腦1。現(xiàn)如今Android、蘋果等各智能手機(jī)已經(jīng)基本占領(lǐng)整個手機(jī)市場,從而使得更多應(yīng)用的出現(xiàn),然而手機(jī)游戲應(yīng)用在其中占領(lǐng)主要的位置。隨著Android智能手機(jī)的普及以及游戲種類的多元化,使得Android手機(jī)游戲用戶規(guī)模保持著穩(wěn)步增長之勢2,3。 1.1.2 國內(nèi)外現(xiàn)狀目前國內(nèi)外的Android開發(fā)還是主要以應(yīng)用開發(fā)為主,主要分成3類:企業(yè)應(yīng)用、通用應(yīng)用以及游戲應(yīng)用。第一類應(yīng)用的開發(fā)主要是一些大公司為了自己的品牌而開發(fā)的。第二類的應(yīng)用主要是一些創(chuàng)業(yè)型公司或者獨(dú)立開發(fā)者為了盈利開發(fā)的應(yīng)用。第三類應(yīng)用目前跟第二類應(yīng)用相同4。2048小游戲是一款最近風(fēng)靡全球的手機(jī)游戲,簡單的游戲模式和趣味的玩法,幾乎游戲下載排行榜的前10名都可以看到“他的身影”。1.1.3 課題意義現(xiàn)如今,手機(jī)游戲已在我們的生活中占據(jù)一席之地,并在一步步的壯大??梢哉f,隨著他的迅猛發(fā)展,現(xiàn)今的手機(jī)游戲已經(jīng)不單單是一種緩解壓力的工具,而是形成了一種文化現(xiàn)象。隨著游戲軟件在市場的一步步壯大,與其有關(guān)的文化也隨之傳播。2048游戲的制作屬于電子游戲中的益智類小游戲,它做到了娛樂性、趣味性、教育性相統(tǒng)一。益智類的游戲即是需要去開動大腦去思考從而獲得游戲的勝利。簡單的益智類游戲可以使玩家在娛樂中不斷的開發(fā)大腦。這樣一來就實(shí)現(xiàn)了在娛樂中學(xué)習(xí)。現(xiàn)有2048游戲最大的不足在于過度強(qiáng)調(diào)簡潔,它是由數(shù)字組成的游戲,所以在長時(shí)間的游戲后就會感覺無聊,同時(shí)在熟知玩法后就會知道下一個要拼出的數(shù)字,這就缺乏神秘感,當(dāng)一款游戲缺乏了神秘和趣味時(shí)就注定失敗。所以我們要勇于創(chuàng)新,將2048游戲開發(fā)出不同的版本,當(dāng)玩家覺對拼接數(shù)字感到無聊時(shí)可以有不同的選擇。2048還有一大缺點(diǎn)就是當(dāng)玩家拼出2048時(shí)游戲就會結(jié)束,這樣就會讓玩家感到失落,所以我們要創(chuàng)作一個永無止境的游戲,讓玩家去不斷的超越自己。1.2 本章小結(jié)本章首先介紹了本游戲2048的研究背景,主要是以手機(jī)的應(yīng)用市場發(fā)展現(xiàn)狀和國內(nèi)外現(xiàn)狀兩方面來闡述,以及簡單的介紹了本課題的意義。二、 開發(fā)環(huán)境的介紹和搭建本章是對Android應(yīng)用開發(fā)的開發(fā)環(huán)境進(jìn)行簡單的介紹以及如何搭建。2.1 開發(fā)環(huán)境的介紹2.1.1 JDK的介紹Java Development Kit(JDK) 是Java語言的軟件開發(fā)工具包。Java的核心就是JDK,JDK主要包括了Java基礎(chǔ)類庫、Java運(yùn)行環(huán)境以及Java工具。它主要是為Java程序員開發(fā)而發(fā)布的免費(fèi)開發(fā)工具包5,6。2.1.2 Eclipse的介紹Eclipse是一個基于Java的和開源的開發(fā)平臺,剛開始只是用于Java語言的開發(fā),現(xiàn)在人們使用一些外掛程式使得Eclipse可以開發(fā)一些其他的計(jì)算機(jī)語言。Eclipse對他本身而言它只是一個框架平臺,但最多的外掛程式使得它變得具有靈活性7。2.1.3 Android SDK的介紹SDK(softwaredevelopment kit)是軟件開發(fā)工具包。Android SDK 指的是Android專屬的軟件開發(fā)工具包8。2.2 開發(fā)環(huán)境的搭建2.2.1 JDK的安裝與環(huán)境變量配置(1)從網(wǎng)上下載JDK1.6或者JDK1.7版本。(2)雙擊文件安裝JDK。(3)環(huán)境變量的配置:右擊“我的電腦”-屬性-“高級系統(tǒng)設(shè)置”-環(huán)境變量9。環(huán)境變量的設(shè)置界面分“用戶變量”和“系統(tǒng)變量”10。在系統(tǒng)變量里點(diǎn)擊新建在變量名中輸入“JAVA_HOME”,在變量值中填入JDK的安裝路徑;接著新建classpath變量,變量值設(shè)為:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar,然后雙擊“系統(tǒng)變量”中存在的path在彈出的對話框中添加變量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin,最后運(yùn)行-cmd,輸入javac,如果出現(xiàn)用法說明,則表示成功11,12。2.2.2 Android SDK 與Eclipse的安裝與配置在網(wǎng)上搜索adt-bundle-windows并下載。下好之后直接解壓縮,此文件為已經(jīng)集成了Eclipse和Android SDK 的完整版,這樣就可以適合一些新手。2.2.3 Android虛擬機(jī)AVD的配置在Eclipse菜單欄中點(diǎn)擊Window-Android Virtual Device Manager13,在彈出的窗口中點(diǎn)擊“new”按鈕,進(jìn)入到創(chuàng)建的AVD配置窗口,可以創(chuàng)建自己想要的AVD14,如圖2.1所示:圖2.1 AVD配置圖配置成功后,選中創(chuàng)建好的AVD并點(diǎn)擊“start”按鈕彈出對話框點(diǎn)擊Launch按鈕,由于AVD第一次啟動時(shí)間較長,需耐心等待15。開啟成功后如圖2.2所示:圖2.2 AVD界面圖2.3 本章小結(jié)本章是對Android應(yīng)用開發(fā)所需的開發(fā)環(huán)境進(jìn)行簡單的介紹和對開發(fā)環(huán)境如何搭建進(jìn)行介紹。三、 系統(tǒng)的需求分析和概要設(shè)計(jì)這章主要講述了系統(tǒng)的需求分析,簡單的描述了各個功能模塊和游戲的基本規(guī)則,然后是對系統(tǒng)概要設(shè)計(jì)的介紹。3.1系統(tǒng)需求分析3.1.1系統(tǒng)功能需求分析系統(tǒng)主要實(shí)現(xiàn)以下的幾個功能:關(guān)卡選擇、呈現(xiàn)游戲界面、重新開始游戲、當(dāng)前分?jǐn)?shù)和最高分?jǐn)?shù)、游戲幫助等功能。關(guān)卡選擇是當(dāng)玩家點(diǎn)擊此按鈕時(shí),游戲就會從主界面跳轉(zhuǎn)到關(guān)卡選擇界面,當(dāng)玩家選擇相應(yīng)的關(guān)卡時(shí),先判斷此關(guān)卡是否開啟,如果沒有開啟此關(guān)卡就會彈出對話框提示玩家此關(guān)卡未開啟,如果此關(guān)卡已經(jīng)開啟就會跳轉(zhuǎn)到主界面同時(shí)開始此關(guān)卡。重新開始游戲是當(dāng)玩家無法滿足當(dāng)前進(jìn)度時(shí)點(diǎn)擊此按鈕就會重新開始游戲,如果玩家處于不同關(guān)卡時(shí)重新開始游戲還是停留在此關(guān)卡。游戲幫助是當(dāng)新手玩此游戲時(shí)無法知道游戲玩法時(shí)給予相應(yīng)的提示。呈現(xiàn)游戲界面是游戲開始時(shí)主界面在游戲區(qū)域會生成44的矩陣同時(shí)在矩陣?yán)锩骐S機(jī)生成兩個2或4的卡片。當(dāng)前分?jǐn)?shù)和最高分?jǐn)?shù)是顯示此局玩家所獲得的分?jǐn)?shù)和歷史最高的分?jǐn)?shù),如果當(dāng)前的分?jǐn)?shù)超過最高分?jǐn)?shù)那么最高分顯示當(dāng)前的分?jǐn)?shù),如圖3.1所示。圖3.1系統(tǒng)功能圖3.1.2游戲基本規(guī)則在開始游戲后玩家通過滑動屏幕來操控卡片的移動方向,當(dāng)卡片滑動中如果有兩張卡片相同且他們的中間也沒有其他卡片時(shí),在滑動的過程中這兩張卡片會合并,顯示為這兩張卡片之和。在滑動之中有三張卡片相同時(shí)只會合并向滑動方向兩張卡片。在滑動中如果有兩張卡片一樣同時(shí)又有一張卡片的值跟這兩張卡片相加的值時(shí),滑動只會使那兩張相同的卡片合并而不會接著讓合并后的卡片和另一張卡片合并。3.2系統(tǒng)概要設(shè)計(jì)3.2.1系統(tǒng)流程的設(shè)計(jì)游戲開始進(jìn)入開始頁面,能夠進(jìn)入游戲的主界面并開始普通開局,從主界面能夠重新開始游戲、查看幫助和進(jìn)入關(guān)卡選擇界面。當(dāng)玩家點(diǎn)擊重新開始按鈕會彈出相應(yīng)的對話框讓玩家選擇,如果玩家選擇“是”時(shí)則重新開始游戲,如果選擇“否”則返回游戲界面不做任何處理。當(dāng)玩家點(diǎn)擊關(guān)卡按鈕會跳轉(zhuǎn)到關(guān)卡選擇界面,關(guān)卡界面將顯示所有的關(guān)卡,當(dāng)玩家點(diǎn)擊相應(yīng)的關(guān)卡時(shí)后臺會判斷此關(guān)卡是否開啟,如果已經(jīng)開啟將會跳轉(zhuǎn)到主界面并運(yùn)行此關(guān)卡,如果沒有開啟將給予玩家提示“此關(guān)卡未開啟”對話框。在開始界面按返回按鈕時(shí)則會退出游戲。游戲的流程圖如圖3.2所示:圖3.2系統(tǒng)流程圖3.2.2系統(tǒng)模塊設(shè)計(jì)從總體出發(fā),將該系統(tǒng)劃分為三大模塊:“菜單設(shè)計(jì)”,“界面設(shè)計(jì)”和“算法設(shè)計(jì)”。3.2.2.1 菜單設(shè)計(jì)菜單的實(shí)現(xiàn)是在游戲界面實(shí)現(xiàn),可進(jìn)一步劃分為三個模塊,分別是:“游戲幫助”,“重新開始”,“關(guān)卡選擇”,如圖3.3所示:重新開始關(guān)卡選擇游戲幫助圖3.3菜單設(shè)計(jì)3.2.2.2界面設(shè)計(jì)可進(jìn)一步劃分為:“主界面設(shè)計(jì)”,“游戲界面設(shè)計(jì)”和“關(guān)卡界面設(shè)計(jì)”,如圖3.4所示: 開始游戲 關(guān)卡選擇分?jǐn)?shù) 游戲區(qū)域重新幫助關(guān)卡 (a) 開始界面 (b)游戲界面 (c)關(guān)卡選擇界面圖3.4 界面設(shè)計(jì)3.2.2.3算法設(shè)計(jì)(1)當(dāng)有兩張卡片相同時(shí),向它們可以碰撞的方向滑屏,卡片會移動到最底邊并生成其兩倍數(shù)字的卡片,并且生成一個“2”或“4”的卡片,如圖3.5所示:圖3.5 簡單卡片合成(2)當(dāng)有兩張卡片相同時(shí),且在他相同的方向有張跟它們之和的卡片,向它們可以碰撞的方向滑屏,相同的卡片會移動到無法移動的位置并生成期兩倍數(shù)字的卡片,但合成的卡片不會跟那張兩倍數(shù)字的卡片合并,并且生成一個“2”或“4”的卡片,如圖3.6所示:圖3.6 復(fù)雜卡片合成(3) 當(dāng)界面上沒有空位并且兩兩相鄰的卡片不相同時(shí)游戲結(jié)束。如圖3.7所示:圖3.7游戲結(jié)束3.3 本章小結(jié)本章主要對游戲所實(shí)現(xiàn)的功能進(jìn)行需求分析,對圖形和系統(tǒng)性能進(jìn)行了分析,分析了圖形的特點(diǎn)和實(shí)現(xiàn)的可行性。對系統(tǒng)的性能進(jìn)行了詳細(xì)的分析同時(shí)也提出來解決性能問題的解決方案。 對系統(tǒng)的流程,系統(tǒng)所需的圖形文件,系統(tǒng)的總體架構(gòu)和系統(tǒng)用例進(jìn)行了設(shè)計(jì)。通過本章的分析、設(shè)計(jì)能更加具體的了解系統(tǒng)功能,對系統(tǒng)所要實(shí)現(xiàn)的功能和圖形文件有了更深的認(rèn)識。為下一章系統(tǒng)功能的具體實(shí)現(xiàn)提供了可靠的參考依據(jù)。- 37 -四、 系統(tǒng)實(shí)現(xiàn)本章主要是詳細(xì)介紹每個功能是怎樣的實(shí)現(xiàn)。4.1 開始界面的實(shí)現(xiàn)游戲的主界面是按鈕圖片,只是實(shí)現(xiàn)了界面的跳轉(zhuǎn),當(dāng)玩家點(diǎn)擊此界面時(shí)就會調(diào)用ZuomianActivity.java此函數(shù)讓頁面跳轉(zhuǎn)到游戲界面開始游戲,如圖4.1所示:public class ZuomianActivity extends Activityprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main0);圖4.1 開始界面4.2游戲界面的實(shí)現(xiàn)游戲界面主要是在activity_main.xml中當(dāng)前分?jǐn)?shù)、最高分?jǐn)?shù)、游戲區(qū)域、重新開始按鈕、關(guān)卡選擇按鈕、幫助按鈕,當(dāng)跳轉(zhuǎn)到游戲界面時(shí)就會調(diào)用并執(zhí)行MainActivity.java函數(shù)來展示游戲界面,如圖4.2所示。protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);圖4.2 主界面4.3 游戲滑屏卡片移動的實(shí)現(xiàn)當(dāng)玩家滑動屏幕時(shí),主要是通過initGameView函數(shù)來監(jiān)聽玩家手指滑動的位置,先通過獲取開始坐標(biāo)和結(jié)束坐標(biāo),然后通過比較結(jié)束坐標(biāo)跟開始坐標(biāo)的差值來判斷玩家是怎樣滑動屏幕的。判斷出玩家的滑動軌跡后,通過調(diào)用swipeLeft、swipeRight、swipeUp、swipeDown方法來實(shí)現(xiàn)卡片的移動,如圖4.3所示。public void initGameView() setColumnCount(4);setOnTouchListener(new OnTouchListener() private float startX, startY, offsetX, offsetY;public boolean onTouch(View v, MotionEvent event) switch (event.getAction() case MotionEvent.ACTION_DOWN:startX = event.getX();startY = event.getY();break;case MotionEvent.ACTION_UP:offsetX = event.getX() - startX;offsetY = event.getY() - startY;if (Math.abs(offsetX) Math.abs(offsetY) if (offsetX 5) swipeRight(); else if (offsetY 5) swipeDown();break;return true;);private void swipeLeft() boolean merge = false;for (int y = 0; y 4; y+) for (int x = 0; x 4; x+) for (int x1 = x + 1; x1 0) if (cardsMapxy.getNum() = 0) cardsMapxy.setNum(cardsMapx1y.getNum();cardsMapx1y.setNum(0);x-;merge = true; else if (cardsMapxy.equals(cardsMapx1y) cardsMapxy.setNum(cardsMapxy.getNum() * 2);cardsMapx1y.setNum(0);MainActivity.getMainActivity().addScore(cardsMapxy.getNum(); merge = true;break;if (merge) addRandomNum();checkComplete();private void swipeRight() boolean merge = false;for (int y = 0; y = 0; x-) for (int x1 = x - 1; x1 = 0; x1-) if (cardsMapx1y.getNum() 0) if (cardsMapxy.getNum() = 0) cardsMapxy.setNum(cardsMapx1y.getNum();cardsMapx1y.setNum(0);x+;merge = true; else if (cardsMapxy.equals(cardsMapx1y) cardsMapxy.setNum(cardsMapxy.getNum() * 2);cardsMapx1y.setNum(0);MainActivity.getMainActivity().addScore(cardsMapxy.getNum();merge = true;break;if (merge) addRandomNum();checkComplete();private void swipeUp() boolean merge = false;for (int x = 0; x 4; x+) for (int y = 0; y 4; y+) for (int y1 = y + 1; y1 0) if (cardsMapxy.getNum() = 0) cardsMapxy.setNum(cardsMapxy1.getNum();cardsMapxy1.setNum(0);y-;merge = true; else if (cardsMapxy.equals(cardsMapxy1) cardsMapxy.setNum(cardsMapxy.getNum() * 2);cardsMapxy1.setNum(0);MainActivity.getMainActivity().addScore(cardsMapxy.getNum();merge = true;break;if (merge) addRandomNum();checkComplete();private void swipeDown() boolean merge = false;for (int x = 0; x = 0; y-) for (int y1 = y - 1; y1 = 0; y1-) if (cardsMapxy1.getNum() 0) if (cardsMapxy.getNum() = 0) cardsMapxy.setNum(cardsMapxy1.getNum();cardsMapxy1.setNum(0);y+;merge = true; else if (cardsMapxy.equals(cardsMapxy1) cardsMapxy.setNum(cardsMapxy.getNum() * 2);cardsMapxy1.setNum(0);MainActivity.getMainActivity().addScore(cardsMapxy.getNum();merge = true;break;if (merge) addRandomNum();checkComplete(); 圖4.3 卡片移到4.4 重新開始游戲功能的實(shí)現(xiàn)當(dāng)玩家點(diǎn)擊游戲界面的重新開始游戲時(shí),會彈出給玩家選擇的對話框,讓玩家選擇是否重新開始游戲。當(dāng)玩家選擇“是”時(shí)游戲會重新開始,重新開始游戲會根據(jù)玩家當(dāng)前所選的關(guān)卡來重置游戲,如果玩家選擇“否”時(shí),游戲?qū)⒗^續(xù)下去,如圖4.4所示。btnNewGame = (Button) findViewById(R.id.btnNewGame);btnNewGame.setOnClickListener(new View.OnClickListener() public void onClick(View v) new AlertDialog.Builder(MainActivity.this).setTitle( 是否重新再來!).setNegativeButton(取消,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) ).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) if (getGameid() = 0)gameView.startGame();else if (getGameid() = 1)gameView.startGame64();else if (getGameid() = 2)gameView.startGame128();else if (getGameid() = 3)gameView.startGame256();else if (getGameid() = 4)gameView.startGame512();else if (getGameid() = 5)gameView.startGame1024();else if (getGameid() = 6)gameView.startGame2048();else if (getGameid() = 7)gameView.startGame4096();else if (getGameid() = 8)gameView.startGame8192();else if (getGameid() = 9)gameView.startGame16384();else if (getGameid() = 10)gameView.startGame32768();else if (getGameid() = 11)gameView.startGame65536(); ).show(););圖4.4 重新開始游戲4.5 關(guān)卡的實(shí)現(xiàn)當(dāng)玩家的分?jǐn)?shù)達(dá)到一定的高度的時(shí)候就會解開相應(yīng)的關(guān)卡,玩家可以在游戲界面點(diǎn)擊游戲關(guān)卡的按鈕,后臺會通過調(diào)用MainActivity中關(guān)卡相關(guān)的代碼跳轉(zhuǎn)到關(guān)卡界面執(zhí)行GqActivity將寫好的activity_guanqia.xml顯示出來,當(dāng)玩家點(diǎn)擊相應(yīng)的關(guān)卡時(shí)會傳遞相應(yīng)的值給MainActivity,MainActivity根據(jù)傳過來的值調(diào)用相應(yīng)的開局方式,如果點(diǎn)擊的關(guān)卡已開啟則跳轉(zhuǎn)到游戲界面開啟此關(guān)卡,如果沒有開啟則彈出對話框提示玩家此關(guān)卡沒開啟,如圖4.6所示。public class GqActivity extends Activity private Button fanhui;private Button butpt;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_guanqia);fanhui = (Button) findViewById(R.id.fanhui);fanhui.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View arg0) Intent intent = new Intent(GqActivity.this, MainActivity.class);startActivity(intent););butpt = (Button) findViewById(R.id.butpt);butpt.setOnClickListener(new View.OnClickListener() MainActivity mat = MainActivity.getMainActivity();public void onClick(View arg0) Intent intent = new Intent(GqActivity.this, MainActivity.class);setResult(0, intent);finish(););圖4.6 關(guān)卡功能4.6 游戲幫助的實(shí)現(xiàn) 當(dāng)新玩家進(jìn)入到游戲且不知道此游戲玩法,玩家可以點(diǎn)擊游戲幫助按鈕來了解游戲玩法,點(diǎn)擊按鈕時(shí)游戲會彈出對話框顯示游戲玩法,如圖4.7所示。btnHelpInfo.setOnClickListener(new View.OnClickListener() public void onClick(View v) showGameHelpInfo(););private void showGameHelpInfo() TextView view = new TextView(MainActivity.this);view.setText(R.string.gametactics);view.setMaxLines(10);new AlertDialog.Builder(MainActivity.this).setTitle(2048游戲攻略).setView(view).setNeutralButton(OK, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) dialog.dismiss(); ).show();圖4.7 游戲幫助4.7 本章小結(jié)本章主要闡述本游戲相關(guān)功能的實(shí)現(xiàn),詳細(xì)的講述了主界面的實(shí)現(xiàn)和個按鈕功能的實(shí)現(xiàn)。五、 測 試本章主要對系統(tǒng)的功能進(jìn)行測試,此次的測試只是進(jìn)行簡單的調(diào)試,來確定游戲的各項(xiàng)功能是否能夠正常運(yùn)行。5.1 游戲系統(tǒng)測試5.1.1游戲流程測試 該測試主要驗(yàn)證游戲能否實(shí)現(xiàn)場景的切換,當(dāng)界面在開始界面時(shí)只顯示按鈕畫面如圖5.1所示,當(dāng)玩家點(diǎn)擊此界面時(shí)跳轉(zhuǎn)到游戲界面如圖5.2所示,最后是關(guān)卡選擇時(shí)界面的跳轉(zhuǎn),當(dāng)玩家點(diǎn)擊關(guān)卡選擇按鈕時(shí)界面會跳轉(zhuǎn)到關(guān)卡選擇界面如圖5.3所示,當(dāng)玩家選擇相應(yīng)的關(guān)卡時(shí)就會跳轉(zhuǎn)到游戲界面如圖5.4所示為選擇相應(yīng)的關(guān)卡后跳轉(zhuǎn)的界面。 圖5.1開始界面 圖5.2游戲界面圖5.3關(guān)卡界面5.1.2 游戲模式該測試主要是測試游戲能否正常的運(yùn)行,當(dāng)玩家滑動屏幕時(shí)卡片能否正常的移動和當(dāng)卡片相同時(shí)是否能夠相加,還有就是測試游戲是否正常結(jié)束,玩家選擇相應(yīng)的關(guān)卡是否能夠執(zhí)行相應(yīng)的關(guān)卡。測試游戲能否正常運(yùn)行,如圖5.4所示:圖5.4游戲是否正常運(yùn)行測試測試關(guān)卡選擇,如圖5.5所示:圖5.5關(guān)卡測試5.2 本章小結(jié)本章是對游戲系統(tǒng)進(jìn)行簡單的測試,通過測試可以看出此游戲可以正常的工作,同時(shí)一些功能也能夠?qū)崿F(xiàn)。六、 總結(jié)與展望6.1 論文總結(jié)本文是對Android平臺2048小游戲的實(shí)現(xiàn)的平臺介紹和開發(fā)實(shí)現(xiàn)的介紹,本文對Android平臺的特性和好處做出了詳細(xì)的介紹,還對如何實(shí)現(xiàn)所有的功能的介紹,最后是對整個系統(tǒng)的測試。6.2 展 望 雖然本系統(tǒng)的開發(fā)已經(jīng)為用戶提供了一個很好的娛樂和溝通平臺,

溫馨提示

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

評論

0/150

提交評論