

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