【正文】
ails some of the basic java knowledge, on this basis leads to Android, the basis of the Android and its characteristics, and then introduces the Android future prospects and development. Highlights this Snake procedures used and controls, including the Drawable Canvas, Thread, and so on. Describes the general use, as well as the program is how to use these classes to the development of the game. The ages of the classic works transplantation in this program to the phone up, to provide application software for the more popular hardware platforms. These will be well positioned to meet future demand for mobile games. Devour the snake game based on the Android platform, prepared to meet the entertainment needs of the general mobile phone users.Key words: Android system。關(guān)鍵詞:Android系統(tǒng)。介紹了這些類的一般的使用方法,以及本程序是如何使用這些類來(lái)進(jìn)行游戲的開發(fā)的。Google公司2007年11月5日發(fā)布的開源的Android平臺(tái) —— 一款包括操作系統(tǒng)(基于Linux內(nèi)核)、中間件和關(guān)鍵應(yīng)用的手機(jī)平臺(tái),并組建了開放手機(jī)聯(lián)盟(Open Handset Alliance),包括Google、中國(guó)移動(dòng)、TMobile、宏達(dá)電、高通、摩托羅拉等領(lǐng)軍企業(yè)。 本科畢業(yè)設(shè)計(jì)(論文) 題目名稱: 基于Android貪吃蛇游戲 學(xué) 院: 計(jì)算機(jī)科學(xué)技術(shù) 專業(yè)年級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)08(師)級(jí) 學(xué)生姓名: 班級(jí)學(xué)號(hào): 2班28號(hào) 指導(dǎo)教師: 二○一二 年 六 月 六 日摘 要本課題是利用java語(yǔ)言在Android平臺(tái)上進(jìn)行手機(jī)游戲的開發(fā),由于本人知識(shí)的有限,以及客觀條件的限制,本人打算開發(fā)一個(gè)單機(jī)版的游戲。于是,我決定利用自己大學(xué)所學(xué)的知識(shí),自己在指導(dǎo)老師的幫助下,獨(dú)立開發(fā)這個(gè)小游戲。本程序?qū)⒗仙俳砸说慕?jīng)典作品移植到手機(jī)上來(lái),為更流行的硬件平臺(tái)提供應(yīng)用軟件。 貪食蛇游戲。 Gluttony snake game。因此,移動(dòng)終端的應(yīng)用軟件和需要的服務(wù)將會(huì)有很大的發(fā)展空間。Android平臺(tái)的開放性等特點(diǎn)既能促進(jìn)技術(shù)(包括平臺(tái)自身)的創(chuàng)新,又有助于降低開發(fā)成本,還可以使運(yùn)營(yíng)商能非常方便地制定自己的特色化的產(chǎn)品。Android一詞本意是指機(jī)器人,同時(shí)也指Google于2007年11月5日推出的開源手機(jī)操作系統(tǒng)。全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過(guò)任何基Android 的電話。開放手機(jī)聯(lián)盟表示,Android平臺(tái)可以促使移動(dòng)設(shè)備的創(chuàng)新,讓用戶體驗(yàn)到最優(yōu)越的移動(dòng)服務(wù)。1. 開放性Google與開放手機(jī)聯(lián)盟合作開發(fā)了 Android,這個(gè)聯(lián)盟由包括中國(guó)移動(dòng)、摩托羅拉、高通、宏達(dá)電和 TMobile 在內(nèi)的30多家技術(shù)和無(wú)線應(yīng)用的領(lǐng)軍企業(yè)組成。應(yīng)用程序是在平等的條件下創(chuàng)建的,所以移動(dòng)設(shè)備上的應(yīng)用程序可以被替換或擴(kuò)展,即使是撥號(hào)程序或主屏幕這樣的核心組件;應(yīng)用程序可以輕松地嵌入 HTML、Javascript 和樣式表。4. 智能虛擬鍵盤虛擬鍵盤的出現(xiàn)意味著基于Android 。你可以通過(guò)振動(dòng)屏幕來(lái)進(jìn)行觸覺反饋。Nokia的Symbian系統(tǒng)在Android系統(tǒng)的沖擊下,正在從手機(jī)市場(chǎng)中的王者慢慢被擠下來(lái)。許多時(shí)候人們都會(huì)處于無(wú)聊的狀態(tài),比如等車的時(shí)候、坐長(zhǎng)途車的時(shí)候...這時(shí)若有一款有意思的游戲來(lái)打發(fā)時(shí)間是再好不過(guò)了?,F(xiàn)階段使用較廣泛大家也相對(duì)熟悉的手機(jī)操作系統(tǒng)是由諾基亞公司主導(dǎo)推出的Symbian 操作系統(tǒng)。IOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。系統(tǒng)操作占用大概240MB的存儲(chǔ)器空間?,F(xiàn)在多用Paml公司生產(chǎn)的手機(jī)上。目前國(guó)內(nèi)還沒(méi)有自主研發(fā)并商品化的手機(jī)操作系統(tǒng)。OPhone平臺(tái)采用開源的Linux作為系統(tǒng)內(nèi)核,借鑒并兼容Android平臺(tái),集成靈活高效的Java應(yīng)用框架,充分借鑒當(dāng)下主流手機(jī)操作系統(tǒng)所具有的良好用戶體驗(yàn),提供了一套完整的電話解決方案和各類移動(dòng)數(shù)據(jù)業(yè)務(wù)解決方案。目前國(guó)內(nèi)外手機(jī)應(yīng)用服務(wù)方向主要有基于地理位置的信息服務(wù)(Location Based Service LBS)它是通過(guò)電信移動(dòng)運(yùn)營(yíng)商的無(wú)線電通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動(dòng)終端用戶的位置信息(地理坐標(biāo),或大地坐標(biāo)),在GIS(Geographic Information System,地理信息系統(tǒng))平臺(tái)的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。國(guó)外最大的社交Fackbook也已經(jīng)傳出正在進(jìn)行針對(duì)手機(jī)的產(chǎn)品的研發(fā)。 手機(jī)辦公類軟件在手機(jī)上也正日趨完善,在手機(jī)上編輯查看各類文檔已經(jīng)實(shí)現(xiàn),在Android平臺(tái)上的QuickOffice就是這樣的軟件。 發(fā)展趨勢(shì)隨著3G應(yīng)用的不斷開發(fā)推廣,用戶會(huì)越來(lái)越需要更加個(gè)性化、優(yōu)質(zhì)化的多媒體數(shù)據(jù)服務(wù),用戶希望能夠隨時(shí)、隨地?zé)o縫利用3G網(wǎng)絡(luò)進(jìn)行辦公、網(wǎng)上交易、游戲娛樂(lè)、欣賞影視節(jié)目、收聽和下載音樂(lè)等。接著,發(fā)揮物聯(lián)網(wǎng)的優(yōu)勢(shì),借助無(wú)處不在的傳感器,可以感知并分享到周圍世界的海量信息,這些信息將在“云端”得到整合,幫助用戶及時(shí)、準(zhǔn)確的獲得氣息信息、交通路況。最后,更加智能、安全的設(shè)備,隨著智能手機(jī)的不斷普及和更加智能,手機(jī)軟件的更新、升級(jí)將會(huì)變得越發(fā)簡(jiǎn)單,并會(huì)為用戶提供工具或信息,讓用戶有能力和權(quán)力決策那些內(nèi)容可以瀏覽、下載或分享。若在基本功能上進(jìn)而實(shí)現(xiàn)界面的美化,則還需要更好的美術(shù)人員協(xié)助實(shí)現(xiàn)。(2) Dalvik虛擬機(jī)專門為移動(dòng)設(shè)備做了優(yōu)化。(5) SQLite數(shù)據(jù)庫(kù),用于結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)。(9) 照相機(jī)、GPS、指南針和加速度計(jì)。圖21 Android操作系統(tǒng)的體系結(jié)構(gòu)圖(1) 應(yīng)用程序。該應(yīng)用程序框架用來(lái)簡(jiǎn)化組件軟件的重用,任何一個(gè)應(yīng)用程序度可以發(fā)布它的功能并且任何其他應(yīng)用程序度可以使用其所發(fā)布的功能塊。(5) Linux內(nèi)核。需要注意的是,這個(gè)VM并非您想象中的JVM,而是Dalvik Virtual Machine,這是一種開源技術(shù)。當(dāng)用戶從主屏幕或應(yīng)用程序啟動(dòng)器選擇一個(gè)應(yīng)用程序時(shí),就會(huì)開始一個(gè)動(dòng)作。如果應(yīng)用程序非常簡(jiǎn)單,那么可能不需要?jiǎng)?chuàng)建內(nèi)容提供程序。Android的圖形界面分為三層:底層是Activity。View是基本控件,ViewGroup是布局控件。它包括必需的類名和應(yīng)用程序能夠處理的事件類型,以及運(yùn)行應(yīng)用程序所需的許可。 本項(xiàng)目的開發(fā)方法經(jīng)過(guò)深入分析,本項(xiàng)目使用面向?qū)ο蠓绞介_發(fā)是比較好的開發(fā)方式。 面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,這種方法的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。 傳統(tǒng)的軟件開發(fā)過(guò)程可以用“瀑布”模型來(lái)描述,這種方法強(qiáng)調(diào)自頂向下按部就班地完成軟件開發(fā)工作。 面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,就是分析、設(shè)計(jì)和實(shí)現(xiàn)一個(gè)軟件系統(tǒng)的方法和過(guò)程.盡可能接近人們認(rèn)識(shí)世界解決問(wèn)題的方法和過(guò)程,也就是使描述問(wèn)題的問(wèn)題空間和描述解法的解空間在結(jié)構(gòu)上盡可能一致。因此,面向?qū)ο蟮沫h(huán)境提供了強(qiáng)有力的抽象機(jī)制,便于人在利用計(jì)算機(jī)軟件系統(tǒng)解決復(fù)雜問(wèn)題時(shí)使用習(xí)慣的抽象思維工具。 開發(fā)工具及環(huán)境簡(jiǎn)介 開發(fā)工具Eclipse簡(jiǎn)介Eclipse是一個(gè)開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴(kuò)展開發(fā)平臺(tái),也是目前最著名的開源項(xiàng)目之一,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在 Eclipse之上COBOL,Perl,Python等語(yǔ)言的開發(fā)插件出現(xiàn)。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成—— Eclipse Platform、JDT、CDT支持C開發(fā)、PDE用來(lái)支持插件開發(fā),Eclipse Platform則是一個(gè)開放的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺(tái)。Eclipse SDK由Eclipse項(xiàng)目生產(chǎn)的工具和來(lái)自其它開放源代碼的第三方軟件組合而成。因?yàn)楸卷?xiàng)目的開發(fā)工具是Eclipse,所以還需要安裝ADT(Android Development Tools)插件。該部分的目標(biāo)主要有:獲得目標(biāo)系統(tǒng)的物理模型,了解目標(biāo)系統(tǒng)是如何運(yùn)行的;抽象出目標(biāo)系統(tǒng)的邏輯模型,對(duì)物理模型進(jìn)行篩選,得到與軟件系統(tǒng)有關(guān)的部分;建立目標(biāo)系統(tǒng)的邏輯模型,得出數(shù)據(jù)流圖和數(shù)據(jù)字典;補(bǔ)充目標(biāo)系統(tǒng)的邏輯模型,對(duì)目標(biāo)系統(tǒng)的用戶界面,至今尚未考慮的細(xì)節(jié)進(jìn)行說(shuō)明。(1) 利用方向鍵來(lái)改變蛇的運(yùn)行方向。 系統(tǒng)需求分析 業(yè)務(wù)需求分析雖然現(xiàn)在市面上存在著各種各樣的游戲版本,不論是手機(jī),還是小游戲機(jī),不可能花費(fèi)大量時(shí)間在娛樂(lè)上,大型游戲是行不通的,這樣的小游戲剛好迎合了他們的需求。因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計(jì)中。但是用戶對(duì)軟件產(chǎn)品也有一定的要求。2. 運(yùn)行穩(wěn)定一款軟件設(shè)計(jì)得不夠好,那么就有可能在運(yùn)行的時(shí)候出現(xiàn)一些不可預(yù)料的錯(cuò)誤從而造成軟件崩潰。 功能需求分析本項(xiàng)目是一個(gè)運(yùn)行在Android手機(jī)上的游戲,所以在應(yīng)該實(shí)現(xiàn)以下功能。蛇不能向相反方向移動(dòng),例如蛇頭朝南時(shí)則不能向北移動(dòng)。觸摸屏幕游戲開始,蛇開始移動(dòng)鍵盤操作: 向上左移右移 向下沒(méi)有吃到食物且蛇碰到邊界游戲結(jié)束游戲中途欲中斷,稍后繼續(xù)游戲觸摸屏幕暫停游戲游戲暫停進(jìn)入游戲畫面再次觸摸屏幕游戲恢復(fù)圖11 游戲處理流程圖 概要設(shè)計(jì) 模塊劃分從面向?qū)ο蟪绦蛟O(shè)計(jì)的角度,本項(xiàng)目總體可以分為游戲界面模塊、數(shù)據(jù)存儲(chǔ)模塊和控制模塊。游戲的主界面架游戲圖形區(qū)域界面游戲控制按鈕界面圖13 游戲主界面 游戲控制模塊 游戲控制模塊主要通過(guò)手機(jī)鍵盤上的按鈕來(lái)控制游戲的開始、游戲的退出這兩個(gè)功能以及控制游戲分?jǐn)?shù)變化。一個(gè)activity主要有三個(gè)狀態(tài)。即是:在它之上有另外一個(gè)activity。它仍然保留所有的狀態(tài)和成員信息。當(dāng)一個(gè)activity從這個(gè)狀態(tài)轉(zhuǎn)變到另一個(gè)狀態(tài)時(shí),它被以下列protected方法所通知。 游戲控制模塊實(shí)現(xiàn)1. 實(shí)現(xiàn)操作蛇的移動(dòng)方向在Android系統(tǒng)中,手機(jī)上的每個(gè)按鈕都會(huì)有一個(gè)對(duì)應(yīng)的鍵值跟它對(duì)應(yīng),所在可以給對(duì)應(yīng)的按鈕設(shè)置監(jiān)聽器OnClickListener,監(jiān)聽器是一個(gè)接口,該接口中有一個(gè)方法onClick(View v)。2. 實(shí)現(xiàn)游戲暫停在Activity的生命周期中,有一個(gè)onPause(),如果有來(lái)電或是其它事件中斷,這時(shí)應(yīng)該把當(dāng)前狀態(tài)保存。4. 實(shí)現(xiàn)游戲退出當(dāng)一個(gè)Activity退出或者被調(diào)用finish()方法后,系統(tǒng)會(huì)調(diào)用其生命周期方法onDestroy().當(dāng)用戶退出游戲時(shí),可以在這個(gè)方法中對(duì)資源進(jìn)行釋放。View是所有與用戶交互的組件的Widgets的基類(Buttons,textField等),View的子類ViewGroup是layouts類的基類,layouts類可以包含其他的View/ViewGroup組件并且定義展示的屬性。SnakeView的方法摘要。4. 刷新蛇的當(dāng)前位置的方法主要用于刷新蛇的當(dāng)前位置。各個(gè)類之間的關(guān)系及所包括的方法如圖46所示。根據(jù)方向鍵,改變蛇頭的x、y的值,即改變方向。 setContentView()。 (PLAY)。 (LEFT)。 right = (ImageButton)findViewById()。 ()。 ((1, 1, 255, 1))。 (this)。 } else { // We are being restored Bundle map = (ICICLE_KEY)。 ()。 break。View會(huì)繪制一個(gè)包含Drawing是event事件的方形塊。onDraw()protected void onSizeChanged(int w, int h, int oldw, int oldh) { mXTileCount = (int) (w / mTileSize)。 mTile