版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、移動(dòng)互聯(lián)網(wǎng)開發(fā)課程設(shè)計(jì)報(bào)告學(xué)生姓名:學(xué) 號(hào):專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí):設(shè)計(jì)題目: 拼圖游戲 學(xué)年學(xué)期: 2016 年 秋 季學(xué)期 指導(dǎo)教師: 目錄一、設(shè)計(jì)題目2二、設(shè)計(jì)目的2三、設(shè)計(jì)原理及方案31Android的系統(tǒng)架構(gòu)32使用的軟件工具和環(huán)境53需求分析與概要設(shè)計(jì)54詳細(xì)設(shè)計(jì)和關(guān)鍵問題7四、實(shí)現(xiàn)效果16五、設(shè)計(jì)體會(huì)18參 考 文 獻(xiàn)18一、 設(shè)計(jì)題目拼圖游戲二、 設(shè)計(jì)目的Android 智能手機(jī)功能非常強(qiáng)大,具有很高的性價(jià)比,非常深受人們的喜愛,可能正式因?yàn)槿绱?,?016年中,Android 智能手機(jī)在全世界占據(jù)著81.5%很夸張的市場份額,一舉成為使用的人數(shù)最多,市場份額占據(jù)最
2、大的智能手機(jī)系統(tǒng)。而Android 智能手機(jī)游戲的出現(xiàn)正是為了娛樂心神,并且隨著智能移動(dòng)終端和全球移動(dòng)通信網(wǎng)絡(luò)的不斷進(jìn)步,Android 智能手機(jī)游戲也正在經(jīng)歷從簡單到復(fù)雜的進(jìn)化過程。從全球來看,智能移動(dòng)終端的娛樂服務(wù)一直被認(rèn)為是帶動(dòng)移動(dòng)數(shù)據(jù)業(yè)務(wù)加速并快速發(fā)展的重要力量。也是作為手機(jī)娛樂服務(wù)的重要內(nèi)容之一。近年來,一直伴隨著全球移動(dòng)網(wǎng)絡(luò)和移動(dòng)終端性能不斷的提高和完善。由于近幾年來,Android智能手機(jī)游戲的快速發(fā)展,游戲的分類也變得越來越豐富,目前手機(jī)游戲按內(nèi)容可分為:角色扮演類(RPG)、冒險(xiǎn)類(AVG)、格斗類(FTG)、棋牌類、電影改版類、益智類、體育競技類、模擬類。手機(jī)游戲種類目前已
3、成為人類線上娛樂生活的不可或缺的最主流的載體而存在,現(xiàn)代人對于移動(dòng)終端的休閑娛樂功能所需求越來越強(qiáng)大,移動(dòng)終端上的游戲或已以成為了現(xiàn)代人們娛樂生活中不可或缺的一部分了。 基于Android的游戲開發(fā),國內(nèi)國外的水平差距很大。在市場上成名的手機(jī)游戲基本上都是國外游戲公司開發(fā)的,而且很容易辨認(rèn)。因?yàn)閷W(xué)習(xí)的關(guān)系,本人接觸了很多Android開發(fā)者的游戲,發(fā)現(xiàn)國內(nèi)開發(fā)者開發(fā)的Android手機(jī)游戲,不僅界面粗糙,而且設(shè)計(jì)簡單,同質(zhì)化嚴(yán)重,相同的創(chuàng)意往往被反復(fù)抄襲很多次。而國外開發(fā)者開發(fā)的游戲不同,大型游戲內(nèi)容豐富,情節(jié)完整;小型游戲而從用戶體驗(yàn)和創(chuàng)意上遠(yuǎn)勝國內(nèi)的開發(fā)者。智能手機(jī)是指像電腦一樣可以通過下
4、載、安裝軟件來拓展基本功能的手機(jī),一般具有智能手機(jī)操作系統(tǒng)。相較于非智能手機(jī),它功能更強(qiáng),處理速度更快?;贚inux的Android手機(jī)操作系統(tǒng),由于具有開源、免費(fèi)的特性,迅速得到廣大愛好者及廠商的支持。目前,移動(dòng)應(yīng)用軟件中的手機(jī)游戲開發(fā)是一項(xiàng)非常熱門的技術(shù)。Android系統(tǒng)對第三方軟件是開放的,這促進(jìn)了第三方軟件的發(fā)展。Android系統(tǒng)以Linux 2.6為核心,其安全機(jī)制比較完善,增強(qiáng)了手機(jī)使用的安全性。Android平臺(tái)已經(jīng)形成由 Google牽頭,OHA組織參與,系統(tǒng)支持商和服務(wù)供應(yīng)商完善搭配的運(yùn)作機(jī)制,為Android平臺(tái)的快速發(fā)展提供了堅(jiān)實(shí)的基礎(chǔ)。由于Android構(gòu)建在開源
5、代碼的框架之上,并且提供了強(qiáng)大的SDK庫和開放的理念,所以它為廣大的沒有任何移動(dòng)應(yīng)用程序開發(fā)經(jīng)驗(yàn)的新手開辟了一條開發(fā)完美移動(dòng)應(yīng)用程序的康莊大道。而富有經(jīng)驗(yàn)的移動(dòng)開發(fā)人員現(xiàn)在也可以方便地?cái)U(kuò)展到Android平臺(tái)上來,利用它獨(dú)特的功能來改進(jìn)現(xiàn)有產(chǎn)品或者開發(fā)其他新穎產(chǎn)品。Android軟件在一兩年的時(shí)間內(nèi)已經(jīng)迅速發(fā)展,在各類型應(yīng)用系統(tǒng)中都有令用戶滿意的成果。此次課程設(shè)計(jì)的初衷就是想設(shè)計(jì)出一個(gè)能夠在任何環(huán)境任何時(shí)間都能夠放松心情和娛樂心身的單機(jī)游戲,只要通過簡單和易操作的Android游戲幫助手機(jī)用戶來打發(fā)他們閑暇的時(shí)間,并娛樂心身和放松心情。通過該游戲的設(shè)計(jì),將自己學(xué)到的Java,Android方面
6、的理論知識(shí)應(yīng)用于實(shí)踐,提高自己的動(dòng)手能力。在設(shè)計(jì)的過程中,不斷的修補(bǔ)知識(shí)方面的漏洞,加深自己對程序設(shè)計(jì)的理解,為將來從事軟件開發(fā)事業(yè)打下基礎(chǔ)。三、 設(shè)計(jì)原理及方案1 Android的系統(tǒng)架構(gòu)Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從圖2.1中可以看出,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux核心層。圖3-1 Android系統(tǒng)架構(gòu)圖(1) 應(yīng)用程序Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括Email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編
7、寫的。(2) 應(yīng)用程序框架開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括;豐富而又可擴(kuò)展的視圖(Views):可以用來構(gòu)建應(yīng)用程序,它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons),甚至可嵌入的web瀏覽器。內(nèi)容提供器(Content Providers):使得應(yīng)用程序可以訪問
8、另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(layout files)。通知管理器(Notification Manager):使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。活動(dòng)管理器(Activity Manager):用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。(3) 系統(tǒng)運(yùn)行庫1) 程序庫Android包含一些C/C+庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:系統(tǒng)C庫:一個(gè)從BSD
9、繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(libc), 它是專門為基于embedded linux的設(shè)備定制的。媒體庫:基于PacketVideo OpenCORE,該庫支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。Surface Manager:對顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無縫融合。LibWebCore:一個(gè)最新web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的web視圖。SGL:底層的2D圖形引擎。3D libraries:基于OpenGL ES 1.0 APIs實(shí)現(xiàn);該庫可
10、以使用硬件3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。FreeType:位圖(bitmap)和矢量(vector)字體顯示。SQLite:一個(gè)對于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫引擎。2)Android 運(yùn)行庫Android包括了一個(gè)核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬 機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。Dalvik虛擬機(jī)執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由J
11、AVA編譯器編譯,然后通過SDK的dx工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。Dalvik虛擬機(jī)依賴于Linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。(4) Linux內(nèi)核Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。2 使用的軟件工具和環(huán)境Android是Google公司開發(fā)的基于Linux內(nèi)核的開源操作系統(tǒng)。它包括:操作系統(tǒng)、用戶界面和應(yīng)用程序,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。 Android 系統(tǒng)提供了四大基本組件,包括:Activity、Content
12、provide、Service、Intentreceiver,每個(gè)組件都是一個(gè)視圖(view)。但上述四大組件對于一個(gè)Android應(yīng)用程序來說,卻并不是必須的,可能只需要其中的幾種酒可以滿足設(shè)計(jì)需求。Manifext.xml配置文件時(shí)Android應(yīng)用程序不可或缺的一個(gè)XML配置文件,其中定義了程序所用到的組件、組件功能以及一些必要條件和權(quán)限。 Android的上層應(yīng)用程序一般是由java語言開發(fā),所以首先應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)以及開發(fā)環(huán)境Android Studio。此外,還需要Android開發(fā)專用Go
13、ogle提供的Android SDK。3 需求分析與概要設(shè)計(jì)(1) 功能需求1)將1-15的數(shù)字無序的顯示到游戲界面,右下角為空格2)實(shí)現(xiàn)重新開始功能3)實(shí)現(xiàn)使用幫助功能4)實(shí)現(xiàn)點(diǎn)擊按鈕的監(jiān)聽器,調(diào)用action()函數(shù),實(shí)現(xiàn)點(diǎn)擊按鈕與空格的交換5)實(shí)現(xiàn)判斷是否贏得游戲的功能(check()函數(shù))6)實(shí)現(xiàn)向上、向下、向左、向右滑動(dòng)事件的處理(2) 流程圖圖3-2 onCreate()函數(shù)功能圖3-3 onFling()函數(shù)功能(3) 目錄結(jié)構(gòu)由于本程序由小組完成,固目錄結(jié)構(gòu)中還有另外的代碼,實(shí)現(xiàn)的是2048游戲的功能,拼圖游戲的主要代碼在ShifGame中。圖3-4 目錄結(jié)構(gòu)圖4 詳細(xì)設(shè)計(jì)和關(guān)
14、鍵問題onCreate函數(shù)的實(shí)現(xiàn):1) 打亂nums數(shù)組中的數(shù)字,用bnsi.setText函數(shù)顯示到游戲界面,完成游戲的初始化工作。super.onCreate(savedInstanceState);setContentView(R.layout.activity_shift_game);final Random rand = new Random();detector = new GestureDetector(ShiftGame.this, this);for (int i = 0; i 15; i+) /numi與隨機(jī)產(chǎn)生的numsj交換,打亂nums數(shù)組保存的數(shù)字,nums15的值
15、不參與交換,任然為0 int j = rand.nextInt(15); int temp = numsi; numsi = numsj; numsj = temp;bns0 = (Button) findViewById(R.id.bn0);bns1 = (Button) findViewById(R.id.bn1);bns2 = (Button) findViewById(R.id.bn2);bns3 = (Button) findViewById(R.id.bn3);bns4 = (Button) findViewById(R.id.bn4);bns5 = (Button) findVi
16、ewById(R.id.bn5);bns6 = (Button) findViewById(R.id.bn6);bns7 = (Button) findViewById(R.id.bn7);bns8 = (Button) findViewById(R.id.bn8);bns9 = (Button) findViewById(R.id.bn9);bns10 = (Button) findViewById(R.id.bn10);bns11 = (Button) findViewById(R.id.bn11);bns12 = (Button) findViewById(R.id.bn12);bns1
17、3 = (Button) findViewById(R.id.bn13);bns14 = (Button) findViewById(R.id.bn14);bns15 = (Button) findViewById(R.id.bn15);freshData = (Button) findViewById(R.id.refresh);askhelp = (Button) findViewById(R.id.askhelp);for (int i = 0; i 15; i+)/將打亂后的數(shù)字顯示到界面上,nums15值為0,所以bns無需設(shè)置 bnsi.setText(String.valueOf
18、(numsi);2) 設(shè)置點(diǎn)擊事件監(jiān)聽器:bns0.setOnClickListener(new OnClickListener() Override public void onClick(View arg0) /調(diào)用action()函數(shù)和check()函數(shù) action(0, 1, 4); check(); );3) 重新開始功能的實(shí)現(xiàn)代碼:freshData.setOnClickListener(new OnClickListener() Override public void onClick(View v) /點(diǎn)擊重新開始 for (int i = 0; i 15; i+) if (
19、numsi = 0)/將原來為0的地方的背景設(shè)為blank_7 bnsi.setBackgroundResource(R.drawable.blank_7); numsi = i + 1; /*1 2 3 4 5 6 7 8 9 10(原來為0,設(shè)置blank_7) 11 12 13 14 15 14(循環(huán)到上一個(gè)位置即nums14,此處值未被重新設(shè)置)*/ nums15 = 0;/重新設(shè)置nums15為0 for (int i = 0; i 15; i+) /numi與隨機(jī)產(chǎn)生的numsj交換,打亂nums數(shù)組保存的數(shù)字 int j = rand.nextInt(15); int temp
20、= numsi; numsi = numsj; numsj = temp; for (int i = 0; i 0 & num1 0 & num2 16) /兩個(gè)數(shù)字應(yīng)該都在1-15之內(nèi) int swap1 = 0, swap2 = 0; for (int i = 0; i flipLength) for (int i = 0; i flipLength) for (int i = 0; i flipLength - 25) for (int i = 0; i flipLength - 25) for (int i = 0; i 16; i+) if (downCase(i) return t
21、rue; else return false; return false;當(dāng)游戲界面上的數(shù)字按照1-15順序排列,且空格在右下角的時(shí)候,游戲結(jié)束,檢查游戲是否結(jié)束的代碼如下:private void check() result = (nums0 = 1) & (nums1 = 2) & nums2 = 3 & (nums3 = 4); if (result) result = (result & (nums4 = 5) & (nums5 = 6) & nums6 = 7 & (nums7 = 8); else return; if (result) result = (result & (n
22、ums8 = 9) & (nums9 = 10) & nums10 = 11 & (nums11 = 12); else return; if (result) result = (result & (nums12 = 13) & (nums13 = 14) & nums14 = 15); if (result) new AlertDialog.Builder(ShiftGame.this).setTitle(恭喜) .setMessage(You Win!n).setPositiveButton(確定, null) .setIcon(getResources().getDrawable(R.drawable.bomb) .show(); 四、 實(shí)現(xiàn)效果圖4-1 開始游戲圖4-2 點(diǎn)擊重新開始圖4-3 點(diǎn)擊使用幫助圖4-4 交換2和4五、 設(shè)計(jì)體會(huì)經(jīng)過了幾個(gè)星期的研究終于把拼圖游戲完成了,這個(gè)游戲的完成使我明白了,看似很簡單的事情要真的動(dòng)手實(shí)踐起來確實(shí)有一定的難度,還好經(jīng)過我不斷的耐心學(xué)習(xí)和鉆研,才把這個(gè)游戲的基本功能實(shí)現(xiàn)了。 俗話說,不積跬步無以至千里,不積小流無以成江海,程序中的很多方法我都是在書中和網(wǎng)上找了又找,試了又試,一遍又一遍,最終才把需要的方法融入到程序當(dāng)中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州拙政園課件
- 2024-2025學(xué)年初中同步測控優(yōu)化設(shè)計(jì)物理八年級(jí)下冊配人教版第八章測評(A)含答案
- 一年級(jí)數(shù)學(xué)上冊??家族e(cuò)填空100道
- 西京學(xué)院《機(jī)械設(shè)計(jì)基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《國際貨運(yùn)代理與報(bào)關(guān)實(shí)務(wù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《大數(shù)據(jù)技術(shù)原理及應(yīng)用》2021-2022學(xué)年期末試卷
- 小兔搬家 課件
- 西華師范大學(xué)《外國音樂史與名作賞析》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《數(shù)據(jù)庫系統(tǒng)原理》2022-2023學(xué)年期末試卷
- 西華師范大學(xué)《幾何學(xué)基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年部編版高一上學(xué)期期末語文試卷及解答參考
- 2024年新人教版四年級(jí)數(shù)學(xué)下冊《第9單元 數(shù)學(xué)廣角-雞兔同籠》教學(xué)課件
- 2024年廣東省廣州市南沙區(qū)紀(jì)委監(jiān)委招聘1人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 互聯(lián)網(wǎng)醫(yī)院合作協(xié)議
- 經(jīng)濟(jì)師中級(jí)考試《經(jīng)濟(jì)基礎(chǔ)知識(shí)》歷年真題卷及答案解析
- 2024年江蘇地區(qū)“三新”供電服務(wù)公司招聘135人(第二批)高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 山東教育出版社初中美術(shù) 七年級(jí)上冊第二單元 讀書、愛書的情結(jié) 單元教學(xué)設(shè)計(jì)
- 課件:《中華民族共同體概論》第六講 五胡入華與中華民族大交融(魏晉南北朝)
- 2024 smart汽車品牌用戶社區(qū)運(yùn)營全案
- 登革熱診療方案(2024年版)解讀
- 期中 (試題) -2024-2025學(xué)年人教精通版英語六年級(jí)上冊
評論
0/150
提交評論