版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> XXXX學(xué)院</b></p><p><b> 計(jì)算機(jī)科學(xué)系</b></p><p> 《Android程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告</p><p> 題 目: 貪吃蛇 </p><p> 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) </p>
2、<p> 班 級: B11計(jì)科班 </p><p><b> 2014年6月</b></p><p><b> 目錄</b></p><p><b> 第一章 緒論2</b></p><p><b> 1.1游戲簡介2<
3、;/b></p><p> 1.2開發(fā)目的及意義3</p><p> 1.3開發(fā)環(huán)境及工具3</p><p> 第二章 需求分析4</p><p> 2.1游戲界面分析4</p><p> 2.2游戲角色分析4</p><p> 2.3游戲控制分析4</p&g
4、t;<p> 第三章 總體設(shè)計(jì)5</p><p> 3.1系統(tǒng)功能模塊層次圖5</p><p><b> 3.2運(yùn)行機(jī)制6</b></p><p> 3.3貪吃蛇功能流程圖7</p><p> 第四章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)9</p><p> 4.1 SnakeAct
5、ivity類9</p><p> 4.2 MyTile類10</p><p> 4.3 NextActivity類18</p><p> 4.4 SysApplication類19</p><p> 4.5界面設(shè)計(jì)20</p><p><b> 第五章 測試26</b><
6、;/p><p> 5.1功能測試26</p><p> 5.4測試結(jié)果27</p><p><b> 第六章 結(jié)論27</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1游戲簡介</b></p>
7、;<p> 貪吃蛇游戲是一款手機(jī)游戲,同時(shí)也是一款比較需要耐心的游戲。貪吃蛇游戲是一條蛇,不停地在手機(jī)屏幕上游走,吃在手機(jī)屏幕上出現(xiàn)的食物。當(dāng)蛇吃掉1個(gè)食物后會變長,并且吃完食物時(shí)食物會消失,并立即隨機(jī)生成1個(gè)新的食物,只要蛇頭碰到屏幕四周或者碰到自己的身子,蛇就立即斃命。</p><p> 1.2開發(fā)目的及意義</p><p> 通過本次課程設(shè)計(jì),了解android軟
8、件的開發(fā)過程,熟悉并掌握J(rèn)AVA語言, 程序關(guān)鍵在于表示蛇的圖形及蛇的移動(dòng)。用一個(gè)小矩形塊表示蛇的一節(jié)身體,身體每長一節(jié),增加一個(gè)矩形塊,蛇頭用一節(jié)表示。移動(dòng)時(shí)必須從蛇頭開始,所以蛇不能向相反的方向移動(dòng),如果不按任意鍵,蛇自行在當(dāng)前方向上前移,但按下有效方向鍵后,蛇頭朝著該方向移動(dòng),一步移動(dòng)一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位置,而后蛇的身體隨蛇頭移動(dòng)。意義是方便人們在休閑時(shí)通過玩手機(jī)游戲獲得一點(diǎn)快樂,同時(shí)鍛煉自己的大腦。&l
9、t;/p><p> 1.3開發(fā)環(huán)境及工具</p><p> 在Window8下進(jìn)行,采用eclipse開發(fā)工具,基于安卓2.2操作系統(tǒng)。</p><p><b> 環(huán)境搭建:</b></p><p><b> 1. JDK安裝</b></p><p> 2. Ecl
10、ipse安裝</p><p> 3. Android SDK安裝</p><p> 4. ADT安裝創(chuàng)建AVD</p><p><b> 第二章 需求分析</b></p><p><b> 2.1游戲界面分析</b></p><p> 操作界面應(yīng)該人性化設(shè)計(jì),提
11、示玩家按什么按鍵開始游戲,開始游戲之后,在游戲界面中,以坐標(biāo)的形式對整體界面進(jìn)行劃分,將界面劃分為網(wǎng)格,還應(yīng)設(shè)計(jì)蛇的樣式,食物的樣式和墻的樣式,在蛇吃到食物后的樣式,還有游戲結(jié)束時(shí)的界面顯示,游戲結(jié)束后,要顯示所得的分?jǐn)?shù)。</p><p><b> 2.2游戲角色分析</b></p><p> 設(shè)置游戲貪吃蛇初始時(shí)由固定小矩形塊組成,在游戲中,要隨機(jī)出現(xiàn)由單個(gè)矩形
12、塊構(gòu)成的食物,并且設(shè)置隨機(jī)出現(xiàn)的食物不要出現(xiàn)在蛇的身體中,在蛇吃到食物的時(shí)候,蛇的身體加長。此外,要判定游戲成功與失敗的條件,當(dāng)蛇的頭和尾相撞或者蛇的頭部撞到了墻上,則游戲失敗,此時(shí)游戲結(jié)束,界面顯示所得分?jǐn)?shù)。另外蛇的移動(dòng)原理,由外部按鍵設(shè)置監(jiān)聽控制蛇頭的移動(dòng)方向,在方向的指引下進(jìn)行移動(dòng),蛇及食物的位置都是由坐標(biāo)數(shù)組確定的,食物的位置也是隨機(jī)產(chǎn)生的蛇的移動(dòng)原理是后一矩形塊覆蓋前一個(gè)矩形塊。當(dāng)一個(gè)食物被吃掉的時(shí)候,要自動(dòng)隨機(jī)生成并顯示下一
13、個(gè)食物的位置。這些都是在設(shè)計(jì)過程中需要實(shí)現(xiàn)的。</p><p><b> 2.3游戲控制分析</b></p><p> 游戲中需要通過按鍵對蛇的移動(dòng)方位進(jìn)行控制,共需要設(shè)置四個(gè)方位,分別是“東”“西”“南”“北”,在按鍵上用“上”“下”“左”“右”,按鍵與執(zhí)行部分涉及到監(jiān)聽,通過監(jiān)聽指示蛇的運(yùn)動(dòng),此外,要設(shè)置蛇移動(dòng)是的默認(rèn)方向?yàn)椤坝摇?lt;/p><
14、;p> ,蛇的移動(dòng)只能是90度偏轉(zhuǎn),不能進(jìn)行180度偏轉(zhuǎn)。此外還要設(shè)置游戲的狀態(tài),有運(yùn)行和結(jié)束兩種狀態(tài),蛇體變長的時(shí)候用靜態(tài)變量進(jìn)行加分。</p><p><b> 2.4 可行性分析</b></p><p> 貪吃蛇游戲是一種簡單的大眾的游戲,自從進(jìn)入現(xiàn)代化以來,深受廣大電腦和手機(jī)玩家的喜愛,所以做一個(gè)簡單的貪吃蛇小游戲是有用的?! ”敬卧O(shè)計(jì)我主要運(yùn)用
15、Java語言來完成。Java語言是一種跨平臺,適合于分布式計(jì)算環(huán)境的面向?qū)ο缶幊陶Z言,用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上運(yùn)行?! ∮捎贘ava主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險(xiǎn)。Java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。</p><p><b> 第三章 總體設(shè)計(jì)</b&
16、gt;</p><p> 3.1系統(tǒng)功能模塊層次圖</p><p> 工程中包括4個(gè)類,分別為SnakeActivity(主界面)、MyTile(游戲界面)、NextActivity(游戲結(jié)束界面)和SysApplication類,通過不同Activity之間的轉(zhuǎn)換實(shí)現(xiàn)不同界面之間的切換。SnakeActivity和NextActivity繼承了Activity類,MyTile類繼承
17、了View類,SysApplication類繼承了Application類。 SnakeActivity類是這個(gè)游戲的入口點(diǎn), MyTile類進(jìn)行游戲的繪畫和對游戲控制操作的處理。 Coordinate, MyHandler是 2個(gè)輔助類,是MyTile類中的內(nèi)部類。其中, Coordinate是一個(gè)點(diǎn)的坐標(biāo)( x,y), MyHandler將 MyHandler對象綁定某個(gè)線程并給它發(fā)送消息。如下圖:</p><p
18、><b> 類圖</b></p><p><b> 3.2運(yùn)行機(jī)制</b></p><p> 任何游戲都需要有個(gè)引擎來推動(dòng)游戲的運(yùn)行,在貪吃蛇這個(gè)游戲中,輔助類 MyHandler繼承自 Handler,用來把 MyHandler與當(dāng)前線程進(jìn)行綁定,從而可以直接給線程發(fā)送消息并處理消息。注意一點(diǎn): Handle對消息的處理都是異步。
19、MyHandler在 Handler的基礎(chǔ)上增加 sleep()接口,用來每隔一個(gè)時(shí)間段后給當(dāng)前線程發(fā)送一個(gè)消息。handleMessage()方法在接受消息后,根據(jù)當(dāng)前的游戲狀態(tài)重繪界面。update()與 sleep()間接的相互調(diào)用就構(gòu)成了一個(gè)循環(huán)。由于 sleep()是個(gè)異步函數(shù),所以 update()與 sleep()之間的相互調(diào)用才沒有構(gòu)成死循環(huán)。運(yùn)行機(jī)制如下:</p><p><b>
20、 活動(dòng)圖</b></p><p> 3.3貪吃蛇功能流程圖</p><p><b> 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</b></p><p> 4.1 SnakeActivity類</p><p> 程序的入口,程序的界面。</p><p><b> 代碼如下:</b&g
21、t;</p><p> 4.2 MyTile類</p><p> MyTile的基類是View,包含了貪吃蛇游戲畫面的各個(gè)設(shè)定參數(shù),主要負(fù)責(zé)繪制游戲畫面。還定義了游戲運(yùn)行時(shí)的畫面改變及蛇體和食物的更新方法。MyTile類定義如下:</p><p> 4.3 NextActivity類</p><p> 游戲結(jié)束界面,游戲結(jié)束顯示游戲的
22、分?jǐn)?shù),游戲提示,是否繼續(xù),是否退出。</p><p><b> 代碼如下:</b></p><p> 4.4 SysApplication類</p><p> 退出游戲時(shí),推出整個(gè)應(yīng)用程序。</p><p><b> 代碼如下:</b></p><p><b&g
23、t; 4.5界面設(shè)計(jì)</b></p><p> 界面設(shè)計(jì)包括游戲主界面、游戲結(jié)束界面的設(shè)計(jì)。界面的設(shè)計(jì)采用的是xml文檔形式,在xml文檔中規(guī)劃好界面布局布局后,分別在java文件中聲明。</p><p> ?。?)游戲主界面,主界面采用線性布局設(shè)定,指定自定義的控件。其activity_snake.xml文檔如下:</p><p> 游戲結(jié)束界面
24、,其nextactivity.xml文檔定義如下:</p><p> 界面設(shè)計(jì)完成,但還有最重要的一步,就是將所有的Activity注冊到AndroidManifest.xml中。AndroidManifest.xml文檔如下:</p><p><b> 第五章 測試</b></p><p><b> 5.1功能測試</b
25、></p><p> 經(jīng)過在模擬器上的測試,本軟件能實(shí)現(xiàn)其功能,達(dá)到了小蛇在屏幕上的移動(dòng),小蛇吃食物,食物隨機(jī)出現(xiàn)的功能,當(dāng)小蛇頭尾相撞或與墻相撞時(shí),游戲結(jié)束.這些均在測試中得到驗(yàn)證。</p><p><b> 游戲時(shí)</b></p><p><b> ?。?)結(jié)束時(shí)</b></p><p&g
26、t;<b> 5.4測試結(jié)果</b></p><p> 通過對游戲軟件的功能測試,控制測試和界面測試。對游戲的開始新游戲、退出和統(tǒng)計(jì)分?jǐn)?shù)功能進(jìn)行測試,并測試程序的鍵盤點(diǎn)擊事件,結(jié)論是該游戲軟件能正確實(shí)現(xiàn)功能要求。要求輸出的效果與預(yù)期的輸出效果完全一致。</p><p><b> 第六章 結(jié)論</b></p><p>
27、 這次Android課程設(shè)計(jì)讓我重新熟悉了Android工程的框架及設(shè)計(jì)的步驟,以及每個(gè)文件的作用,稍微掌握了一些View類的方法,同時(shí)也學(xué)到了更多的界面設(shè)計(jì)的方法,比如如何自定義視圖等。在學(xué)習(xí)、使用Java的過程中,進(jìn)一步在總體上讓我對編程語言有了新的認(rèn)識。在設(shè)計(jì)、調(diào)試、修改的過程當(dāng)中,我對程序的設(shè)計(jì)與構(gòu)架在整體上有了進(jìn)步。</p><p> 這次通過做Android課程設(shè)計(jì),我完成了小游戲貪吃蛇的任務(wù)。在
28、整個(gè)過程中遇到了一些問題,如蛇頭怎樣移動(dòng),蛇的尾巴怎樣跟著移動(dòng),還有在默認(rèn)情況下怎樣讓蛇自行移動(dòng)、時(shí)間處理的機(jī)制和界面的設(shè)計(jì)問題,但最終部分被解決了,還有一些自己想到的功能,已經(jīng)去做了但還是出現(xiàn)問題,還沒能做出來,如暫停游戲、完成游戲獲得分?jǐn)?shù)、存檔、游戲排名、蛇無效方向處理和加快蛇移動(dòng)速度等,后面有時(shí)間的話,在繼續(xù)深入把沒有完成的功能做出來。</p><p> 在這一次的課設(shè)過程中,我查閱了相關(guān)的資料,對And
29、roid有了進(jìn)一步的認(rèn)識,希望以后可以用Android做出一款大型軟件,而不只是小游戲。Android讓我比較頭疼的是有些只是知道代碼的作用,卻不是很清楚硬件的工作原理,還有遇到一些問題就想放棄了,這是我今后要克服的。通過這次編程,還讓我認(rèn)識到了自己的不足,在編程方面,我發(fā)現(xiàn)自己是剛剛?cè)腴T,對代碼還不是很熟悉,需要我不斷的充實(shí)自己,這樣才能在程設(shè)計(jì)方面有所收獲。</p><p> 參考文獻(xiàn) [1] Andro
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇課程設(shè)計(jì)
- java貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇課程設(shè)計(jì)
- 貪吃蛇課程設(shè)計(jì)
- 貪吃蛇java課程設(shè)計(jì)--貪吃蛇程序設(shè)計(jì)
- java課程設(shè)計(jì)貪吃蛇
- java課程設(shè)計(jì)--貪吃蛇
- 安卓貪吃蛇課程設(shè)計(jì)報(bào)告
- 安卓貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇vc課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告貪吃蛇游戲
- java貪吃蛇游戲 課程設(shè)計(jì)
- java-課程設(shè)計(jì)--貪吃蛇
- c++課程設(shè)計(jì)----貪吃蛇
- c++貪吃蛇課程設(shè)計(jì)
- 貪吃蛇白盒測試課程設(shè)計(jì)
評論
0/150
提交評論