




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 畢業設計(論文)題 目: 基于安卓平臺的飛機大戰游戲 學 院: 計算機科學學院 專業班級: 計算機科學與技術10級2班 指導教師: 黃國兵 職稱:高級工程師學生姓名: 趙兵 學 號: 41009010216 摘 要自從第一臺計算機研發以來,計算機行業得到了迅速的發展,成就了很多優秀的企業,例如國外的IBM,微軟,GOOGLE,ARM,蘋果等,國內的騰訊,阿里巴巴,百度等,而引領計算機行業的主要因素除了硬件的支撐外,就數操作系統了,而操作系統從Dos,UNIX,LINUX Windows等PC端正在逐漸向移動端轉變如:從Linux到Android;從Unix到IOS;從Windows到Wind
2、ows phone,主要還是因為移動端的便攜性,輕巧性深受人們的喜愛,就在這樣的移動互聯網浪潮中,Android系統更是高達移動端操作系統80%的占有率,真可謂前景無限,而在Android平臺的應用中游戲業務又占著最大的比例,所以本次選題為基于Android的飛機大戰游戲,其主要目的研究移動互聯網的發展趨勢,對其未來的發展有深刻清晰的認識。本論文主要闡述以面向對象的程序開發語言Java及Eclipse為開發工具,而基于智能手機Android系統之上的飛機大戰游戲。首先簡要介紹課題的研究背景、目的及意義,Android的發展歷程、當前國內外的發展現狀。然后介紹了Android平臺開發環境及環境搭
3、建,最后講述了基于Android飛機大戰游戲功能的實現。其功能模塊如下:提供敵機的類模塊,提供子彈的類模塊,主界面模塊,天空背景模塊,檢測子彈與敵機碰撞模塊,檢測,敵機與我擁有的戰機碰撞木塊等,除此以外還為用戶提供更加人性化的設計和方便人員的操作流程。由于Android逐漸成為智能手機技術的主導,相信其基于Android的飛機大戰游戲將會受到更大的歡迎。關鍵字: 安卓,游戲,飛行射擊,飛機ABSTRACTSince the first computer researched and development , the computer industry has been rapid devel
4、opment , that made a lot of excellent enterprise , such as : IBM , Microsoft , Google , ARM , Apple inc In a foreign country ; Tencent , Alibaba Group , Baidu In the domestic . Led by the computer industry in addition to hardware support, the main factors for operating system . And the operating sys
5、tem from Dos, UNIX, LINUX, Windows PC correct is gradually to mobile terminal such as: LINUX - > Android. Unix - > IOS; Windows - > Windows phone, mostly because the mobile end portability, and was deeply loved by people, in this kind of mobile Internet, in the tide of the Android system is
6、 as high as 80% of mobile terminal operating system share, really unlimited prospects, and in the application of the Android platform game business accounts for the largest proportion, so this topic is based on the Android plane war game, the development trend of mobile Internet, the main objective
7、for its future development are clear understanding.This thesis mainly expounds Java with object oriented programming language and Eclipse as the development tool, and the plane based on the intelligent mobile phone Android war games. First briefly introduced the research background, purpose and sign
8、ificance, the development of Android, the current domestic and foreign development present situation. And then introduced the Android platform development environment and the environment, finally tells the story of the realization of the function of Android plane war games. Its function module is as
9、 follows: enemy planes flying in and out of class module, provides the bullet class module, main interface module, the sky background module, detect bullet collision with the enemy aircraft module, detection, the enemy aircraft crash with my own wood, etc., in addition also provides users with more
10、humanized design and convenient operation. Because the Android smartphone technology has become the dominant gradually, believe that the plane war game based on Android will be more welcome.KEY WORDS: Android, Game,Flight shooter,Airplane目 錄第1章 緒論11.1 系統研究的背景及意義11.2 國內外的發展現狀11.3 主要研究的內容21.4 本文的組織結構2
11、1.5 本章小結3第2章 用戶需求分析42.1系統的架構描述42.2 系友好的用戶界面52.3技術選型62.4系統的開發環境62.5 關鍵技術和工具簡介72.6 本章小節8第3章 系統概要設計93.1 模塊的劃分93.1.1 軟件模塊設計93.1.2 軟件功能模塊103.2 主界面設計123.3 游戲界面設計133.4 系統包及其資源規劃133.4.1 系統包管理如下133.4.2 Sqlite數據庫143.4.3 Runable接口以及與Thread的區別163.5 本章小結20第4章 系統功能的實現214.1 主界面的功能實現214.1 游戲界面的功能實現264.3 子彈類的設計394.3
12、 敵機類的設計404.5本章小結42第5章 系統測試435.1 軟件測試的概念435.2 系統的功能和安全測試435.3 測試總結45第6章 總結46致 謝47參考文獻48V第一章 緒論1第一章 緒 論第1章 緒論1.1 系統研究的背景及意義在手機游戲的早期,大多數開發者都是想要玩轉設備、學習技巧和快速攻關的狂熱分子。但是,隨著更多的開發者加入這個行業,手機游戲已經進化成涉及到專業設計師、構造師、開發者、產品經銷商、律師、和藝術家在內的主導產品。這是行業走向成熟的必然趨勢。盡管在某人的業余時間內要開發和推銷簡單的游戲更加困難,但是更多的專業商店將為許多人提供更多的就業機會。 從手機軟件的平臺的
13、種類,游戲玩家的心理,未來移動通信服務終端的發展,3G手機網絡對手機軟件游戲的影響,還有從J2ME手機游戲開發平臺介紹的手機游戲的趨勢和未來這種游戲的運營模式,這幾方面的內容來看,手機游戲是未來游戲發展的趨勢,其移動性、互連性,必定會帶來網絡游戲的風暴,這就使我們對這一個新興的領域有了一定的概念,對指導我們建立一個手機軟件開發培訓的知識結構有一定的幫助,也是我們的一個發展契機。本文基于Android系統設計一種輕松休閑的游戲軟件,讓用戶可以使用手機輕松娛樂,因此項目研究和軟件開發具有重要的實際應用價值。1.2 國內外的發展現狀手機游戲(Mobile Game或Wireless Game),是指
14、消費者利用隨身攜帶并具有無線網絡聯機功能的智能移動終端設備,能隨時隨地來進行的游戲。手機游戲最大的特點是其隨時隨地進行游戲的便利性。這些年來,手機游戲市場有了很大的發展,手機游戲已成為使用率最高的手機娛樂應用,占到各種手機娛樂應用比例的78.4%。在日本,手機游戲市場經歷多年的穩定增長,市場規模已經超過了850 億日元1。在美國,手機游戲作為美國手機用戶最喜歡的移動應用之一,在iPhone和Android等智能終端推出后發展迅速。而在中國,根據易觀智庫產業數據庫最新發布的2010 年第4 季度中國手機游戲市場季度監測數據顯示,我國2010 年手機游戲市場規模已達到32.9 億元,繼續保持了較快
15、的發展。2011年以來Android實現了計算機誕生以來最快速度的增長,目前Android以每天85萬新增激活數的速度快速征服世界,成為世界范圍內占有率最高的智能手機操作系統。根據comScore的統計,2012年第一季度Android在北美的市場占有率又增長了3.7%達到51%;而根據賽諾的調研報告,Android系統在中國48西安工程大學學士學位論文的市場份額高達74.7%,而Android游戲在誕生之處就被很多人看好,便宜的價格,小巧的外觀,游戲資源豐富,相對于傳統主機來說,這些都是Android游戲機的優點,于是一批Android游戲陸續出現了,但事實證明Android游戲并非當初描繪
16、的那樣美好,開放的Android開發平臺,導致了游戲質量和數量不那么盡如人意,所以在游戲的設計與研發過程中游戲的質量關一定要把好。1.3 主要研究的內容本設計項目主要完成一種基于Android開發的一款游戲軟件。項目研究和軟件設計遵循軟件工程的方法,從需求分析,系統分析,概要設計,詳細設計,軟件編碼調試,到驗證測試,完成本軟件整個過程的設計開發。項目研究和軟件設計的具體任務包括:(1)加深面向對象編程思想,鞏固Java語言的設計模式,掌握Android開發的環境搭建。(2)學習和研究Android平臺環境和軟件接口的設計。(3)學習和研究Android平臺多線程。(4)學習和研究Android
17、系統中用戶界面的動態顯示。(5)學習并掌握Sqlite數據庫。(6)學習并掌握Android平臺下動態游戲開發的重要知識點:SurfaceView。1.4 本文的組織結構第1章 緒論 本章主要介紹了課題的研究背景,課題研究的目的與意義,以及該項目所在領域國內外發展狀況等,最后指出了本文工作內容及論文的組織結構。第2章 軟件需求分析和技術介紹 本章主要介紹了本系統的技術構架及課題的需求分析與說明,簡單的介紹了項目應用的平臺和開發環境,并解析了關鍵技術的含義。第3章 系統概要設計 本章是本文比較重要的章節,詳細的劃分了整個項目的開發模塊,及各個模塊的功能設計,最后對整個項目的包結構和項目資源路徑做
18、了簡單的剖析和介紹。第4章 系統功能的實現 詳細介紹開發流程,從建一個Android項目開始到最終完成軟件開發的詳細過程,介紹怎樣檢測飛機碰撞事件,怎樣動態管理界面,怎樣實現飛機飛行的效果。第5章 系統測試 詳細介紹了測試的概念、目的和方法,并介紹如何利用Android自帶的測試工具了系統測試。第6章 總結。1.5 本章小結詳細介紹了Android游戲開發的國內外現狀,以及本論文主要研究的方向和論文的整體結構,從本章中能夠清楚的了解本論文的整體架構,對以后的各細節描述都有清晰的認識。第2章 用戶需求分析第2章 用戶需求分析2.1系統的架構描述本項目主要面向游戲愛好者,要求項目不會占用太大的資源
19、,并能夠盡量沿用原有的相對成熟的java技術,與Android系統進行良好的整合。本設計主要講述了飛機大戰游戲的基本功能和基于Android平臺的軟件開發、接口的設計方法。設計最終達成了開始游戲、關閉音效、查看得分、退出游戲等Android游戲的基本功能。并且系統能夠正常運行,各個頁面交互性較好。在整個設計中基本運用基礎的Android進行功能編程,其中主要利用了SurfaceView實現了動態界面顯示,實現了飛機飛行和發射子彈等效果。在系統規劃中先后系統功能結構圖分析了系統所需的各種數據,詳細的展現了系統的各個功能模塊并給出了主要功能運行界面圖。該游戲軟件目前已有比較完善的管理與使用功能。對
20、學習和工作中的學生和工作人員在閑暇時間放松的好軟件。本系統主要采用模型-視圖-控制器MVC架構的設計模式。MVC架構是"Model-View-Controller"的縮寫,中文翻譯為"模型-視圖-控制器"。MVC應用程序總是由這三個部分組成。Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數據或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數據來刷新自己。整個系統的物理架構如下:界面SurfaceV
21、Ie,模型為常用的子彈飛機類,Controller為SurfaceHolder.callback結構中的回調函數。本系統是應用Android平臺,Android是一個移動設備的軟件平臺,由Linux+Java構成的開源軟件,提供包括SDK、Key Apps、Middleware、Linux Kernel四個部分在內的全套手機軟件方案。開放了基于Linux內核以上的開發工具,從而保證了內容的可移植性和多樣性。Android平臺為我們開發應用程序提供了一套很好的框架,我們可以在這個平臺的基礎上開發不同的應用程序,也可以開發新的組件供應用程序調用。Android會同一系列核心應用程序包一起發布,該應
22、用程序包包括email客戶端,SMS短消息程,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的,本項目也是由java語言編寫。開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用。任何一個應用程序都可以發布它的功能塊并且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。Android系統架構圖如2-1圖所示。西安工程大學學士學位論文圖2-1 android系統架構圖2.2 友好的用戶界面本游戲是直接面對用戶的, 要求游戲能夠提供良好的用
23、戶接口,易用的人機交互界面。要實現這一點,就要求軟件應該盡量使用用戶熟悉的術語和提示消息;針對用戶可能出現的使用問題,要提供足夠的提醒幫助功能,縮短用戶對軟件熟悉的過程。本項目采用Android平臺,從Android的角度分析,Android的開發概括為兩類:一是系統開發,包括底層Linux內核的裁剪和擴展、硬件驅動的開發和系統移植等,從業人員主要在工作在硬件廠商的公司里。二是應用開發,主要包括游戲開發、Android互聯網客戶端開發和工具軟件開發。業內人士預言Android系統將成為手機操作系統領域的“windows”。一個好的功能強大系統,必須要進行完善而且全面的系統分析和友好設計。本項目
24、中,之所以能夠有計劃地進行下去,的確也是緣于良好的系統分析,如若省略這一步直接編程,那難度必然加大,以至于在編程過程中又不得不回過頭來進行系統分析,此時必然拖慢進度,打亂整個系統邏輯,其最終的成品也充滿變數。本系統在性能功能上應達到如下需求:(1) 操作簡單、界面友好: 完全控件式的頁面布局。(2) 游戲的安全性,正在游戲中對可能發生的突發事件做出處理,例如,電話來了,或者有信息等。(3) 軟件的響應速度要快,保證用戶不會應為等待反饋時間過長而放棄本軟件。(4) 軟件的可靠性,能夠真正的帶給游戲者樂趣。(5) 在結構上應具有很好的可擴展性,便于將來的功能擴展和維護。根據以上功能,該系統主要以A
25、ndroid為操作平臺,它提供了很大的自由空間,采用Java為開發語言,使系統開發更加方便快捷,本軟件的目標即為成功、完整的體現該系統,讓客戶滿意。2.3技術選型項目整體技術選型是這樣的,飛機大戰游戲開發過程中應用了java技術和Android SDK提供的類庫,動態界面采用SurfaceView和一些XML文件-,后臺控制使用了SurfaceHolder.callback接口的回調方法。常用的資源文件如子彈,和敵機,戰機,背景圖都通過ps自己處理,系統開始時就啟動新線程,一直運行游戲,知道用戶關閉為止。如下為整體流程圖如下圖2-2所示。2.4系統的開發環境2.4.1開發硬件要求硬件平臺:PI
26、V CPU,主頻2.8G,內存2G,的PC機或PC服務器。操作系統:Microsoft Windows72.4.2系統的軟件開發環境集成開發環境:Eclipse3.6+JDK6.0+SDK2.1數據庫:MySQL5.0編程語言:java 開發模式:MVC模式 音效資源文件 surfaceCreated R.java 回調方法子彈,敵機類文件SurfaceHolderCallback接口SurfaceVIew界面圖片資源文件圖2-2 技術選型模型圖2.5 關鍵技術和工具簡介(1)Intent Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Inten
27、t的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,并完成組件的調用。因此,Intent在這里起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。(2)ADT與SDKADT為Android開發工具(Android Development Tools)簡稱,是在強大的、集成的環境Eclipse IDE中構建Android應用程序插件。ADT擴展了Eclipse的功能,讓您快速建立新的Android項目,創建一個應用程序的用戶界面,加上Android框架的API組件、調試應用程序使用Android SDK工具,以便APK分發給應用程序。SDK即Sof
28、tware Development Kit 的縮寫,中文即“軟件開發工具包”。廣義上指輔助開發某一類軟件的相關文檔、范例和工具的集合。它可以簡單的為某個程序設計語言提供應用程序接口 API的一些文件,但也可能包括能與某種嵌入式系統通訊的復雜的硬件。 (3)SQLite數據庫 SQLite是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、
29、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。 至今已經有14個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。(4)Activity Activity是Android開發中非常重要的一個基礎類。Activity提供了和用戶交互的可視化界面,創建一個Activity一般是繼承Activity類,并覆蓋Activity的onCreate()方法。(5)Eclipse與JDK Eclipse是一個集成開發環境簡稱“IDE”,在Eclipse環境
30、下開發JAVA程序可以大大提高效率,它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的便捷。JDK(Java Development Kit)是Sun Microsystems針對Java開發人員的產品,JDK 是整個Java的核心,包括了Java運行環境,Java工具和Java基礎的類庫。JDK是學好Java的第一步。(6)SurfaceView SurfaceView由于可以直接從內存或者DMA等硬件接口取得圖像數據,因此是個非常重要的繪圖容器,這次我就用兩篇文章來介紹SurfaceView的用法。網上介紹SurfaceView的用法有很多,寫法也層出不同,例如繼承Surface
31、View類,或者繼承SurfaceHolder.Callback類等,這個可以根據功能實際需要自己選擇,我這里就直接在普通的用戶界面調用SurfaceHolder的lockCanvas和unlockCanvasAndPost。2.6 本章小節本章主要介紹了本系統的技術構架及在實際開發中的用戶需求分析,簡單的介紹了項目應用的平臺和開發環境,并介紹了關鍵技術的含義。第3章 系統概要設計第3章 系統概要設計系統的概要設計主要是針對系統的總體功能如何設計,如何劃分模塊,系統的數據庫如何設計進行研究。它為系統的詳細設計做鋪墊。在系統的設計過程中起著非常重要的作用。系統設計是信息開發過程中的另一個重要階段
32、,在這一階段中將根據前一階段邏輯分析的結果,在系統分析報告的基礎上,按照邏輯模型的要求,科學合理地進行新系統的設計。系統設計包含兩個方面:首先是總體結構設計,其次是具體物理模型的設計。這個階段的主要目標是將反映用戶信息需求的系統邏輯方案轉換成可以實施的基于計算機的物理方案,并為下一階段的系統實施提供必要的技術資料。本系統采用結構化設計的方法來實現系統總體功能,提高系統的各項指標,即將整個系統合理的劃分成各個功能模塊,正確地處理模塊之間和模塊內部的聯系以及它們之間的調用關系和數據聯系,定義各模塊的內部結構,通過對模塊的設計和模塊之間關系的系統來實現整個系統的功能。3.1 模塊的劃分本系統整體劃分
33、為三個模塊,分別為主界面,即Android游戲軟件登錄界面,游戲模塊,游戲運行中的界面模塊,用來處理用戶觸摸響應,還有得分統計模塊,用來存儲獲的分數。3.1.1 軟件模塊設計用戶界面是使用者最直接接觸的東西,包括是否能夠讓客戶很輕松、方便的使用,操作響應時間、主機連接時間、圖片綜合質量、首頁布局質量、首頁信息類型等。一般來說,一個界面主要由下面幾個因素構成:(1)文字:文字元素是信息傳達的主體部分。界面中的文字主要包括標題、信息、文字鏈接幾種主要形式。標題和傳統媒體中信息傳達的基本作用相同,是內容的簡概說明,一般比較醒目、優先編排。文字作為占據頁面重要比率的元素,同時又是信息重要載體,它的字體
34、、大小、顏色和排布對頁面整體設計影響極大。(2)圖形:圖形在界面中具有重要作用。合理的運用圖形,可以生動直觀、形象地表現設計主題。網頁中常用的圖形格式包括jpg和png,這兩種格式壓縮比高,得到了Android平臺的支持,圖形元素包括標題、背景、主圖、鏈接圖標西安工程大學學士學位論文四種。(3)界面版式:版式是界面設計的重要組成部分,它將文字、圖形等視覺元素進行組合配置,使頁面整體視覺效果美觀和諧,便于閱讀,操作,實現信息傳達的最佳效果。 Android游戲系統的界面設計也是綜合了文字,圖形等元素。使每一個功能有文字與圖片的共同描述,達到看圖就大概知道此鍵是什么功能的目的,最終的目的還是為了使
35、用者能夠快速上手,不至于因為操作的不得當而放棄此系統。3.1.2 軟件功能模塊 圖3-1 整體結構圖A) 游戲模塊:負責游戲運行的主線程,在一個Android 程序開始運行的時候,會單獨啟動一個Process。默認的情況下,所有這個程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的兩種,除此之外還有Content Provider和Broadcast Receiver)都會跑在這個Process。 一個Android 程序默認情況下也只有一個Process,但一個Process下卻可以有許多個Thread。在這么多Th
36、read當中,有一個Thread,我們稱之為UI Thread。UI Thread在Android程序運行的時候就被創建,是一個Process當中的主線程Main Thread,主要是負責控制UI界面的顯示、更新和控件交互。在Android程序創建之初,一個Process呈現的是單線程模型,所有的任務都在一 個線程中運行。因此,我們認為,UI Thread所執行的每一個函數,所花費的時間都應該是越短越好。而其他比較費時的工作(訪問網絡,下載數據,查詢數據庫等),都應該交由子線程去執行, 以免阻塞主線程。那么,UI Thread如何和其他Thread一起工作呢?常用方法是:誕生一個主線程的Han
37、dler物件,當做Listener去讓子線程能將訊息Push到主線程的Message Quene里,以便觸發主線程的handlerMessage()函數,讓主線程知道子線程的狀態,并在主線程更新UI。B)頁面布局模塊(圖形模塊):雖然有的游戲不需要不斷的重新繪制屏幕,但是假設你想要的游戲需要不間斷的繪制屏幕,這是個簡單的概念并且你不需要去關注任何臟標記或者去關注在某些游戲狀態改變的情況下重新繪制屏幕。我們已經知道UI線程不是一直不間斷的運行的,而是在事件的驅動下有操作系統調度運行的。這就是我們為什么實例化第二個線程,也就是我們通常說的渲染線程,這個線程是由Graphics模塊所創建,Graph
38、ics模塊本身由應用模塊在程序啟動的時候實例化。渲染線程執行一個無限循環,由于應用程序的生命周期事件,它可能會被暫停或者恢復。作為開發者,你可以通過注冊一個RenderListerner將這個線程與圖形模塊連接起來.在我們進入這些方法的詳解之前,我先給你介紹一些細節:libgdx使用OpenGl ES,這個是移動設備上硬件加速圖像渲染的工業標準。OpenGL ES同一個叫做EGL的東西一起使用,EGL負責設立一個窗口系統和圖像硬件的鏈接,它創建一個渲染表面,用戶可以添加一個用戶界面組件到上面,圖形硬件可以不通過使用UI工具包直接渲染。OpenGL ES自身額外的添加了一個叫做圖形上下文的東西,
39、他用于管理駐留在顯存中的圖形資源,舉個例子:這些資源可以是一個紋理,它從本質上來說就是一張位圖,OpenGLES將其建立在EGL的表面和背景,通過圖形處理處理器獲得高質量的圖片。C)游戲配置模塊:對于音效的管理。D)游戲介紹模塊:游戲有智力游戲和活動性游戲之分,前者如下棋、積木、打牌等,后者如追逐、接力及利用球、棒、繩等器材進行的活動,多為集體活動,并有情節和規則,具有競賽性。當前日常用語中的“游戲”多指各種平臺上的電子游戲。電子游戲有單機版和網絡游戲。3.2 主界面設計 飛機大戰開始游戲退出游戲功能塊音效管理關于我們歷史記錄圖3-2 主界面設計圖A) 開始游戲:其中一個Activity,在其
40、調用SetContentView()時,調用我們自己定義的游戲界面,該游戲界面使我們自己通過一個類實現的游戲界面,在該類中繼承了SurfaceView,并實現了SurfaceHolder.callBack接口和runnable接口,在該類的回調函數surfaceCreated()中啟動游戲線程并一直進行游戲直到出現失誤時就關閉該線程。B) 退出游戲,關閉該應用,當我們玩游戲時,想休息會或者想退出游戲時點擊該按鈕,退出游戲C) 音效管理:可以管理在玩游戲時對背景音樂的管理D) 描述該軟件的開發時間,開發人員和本軟件的一些基本信息介紹。3.3 游戲界面設計采用分層管理,具體效果如3-3圖所示:圖3
41、-3 游戲界面圖3.4 系統包及其資源規劃在軟件項目管理過程中一個關鍵的活動是制定項目計劃,它是軟件開發工作的第一步。 項目計劃的目標是為項目負責人提供一個框架,使之能合理地估算軟件項目開發所需的資源 、經費和開發進度,并控制軟件項目開發過程按此計劃進行。 在做計劃時,必須就需要的人力、項目持續時間及成本作出估算。這種估算大多是參考 以前的花費作出的。軟件項目計劃包括二個任務:研究和估算。即通過研究確定該軟件 項目的主要功能、性能和系統界面。3.4.1 系統包管理如下本游戲采用Eclipse中開發Android項目的默認框架,采用Eclipse開發的框架圖如圖3-4結構所示圖3-4 項目資源包
42、管理3.4.2 Sqlite數據庫SQLite數據庫是一款輕型的數據庫,它嵌入在Android系統中,由于沒有數據庫操作的圖形界面和客戶端,所以我們只能通過命令進入Android系統中,進行數據庫的操作。Android給我們提供了一系列系統工具可以訪問SQLite數據庫。Android Debug Bridge(ADB)是Android的一個通用調試工具,它可以更新設備或模擬器中的代碼,可以管理預定端口,可以在設備上運行shell命令,我們知道android是基于Linux內核,它的內部文件結構也是采用Linux文件組織方式,因此訪問它的文件結構需要使用shell。這次我們就會用shell來訪
43、問android應用中的SQLite數據庫文件。1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數shell,出現#號就代表進入了shell命令模式,注意adb要在Android模擬器運行時才能進入shell。執行如下圖3-5所示。圖3-5 進入shell命令模式2、shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當前目錄下文件列表和進入到指定目錄。了解這兩個命令之后,就可以找到data/data/項目包名/databases。找到數據庫文件,接下來就是使用sqlite管理工具來進行操作了。鍵入sqlite3+數據庫名
44、就進入了sqlite管理模式了。執行過程如下圖3-6所示。圖3-6 進入sqlite管理模式3.4.3 Runable接口以及與Thread的區別在java中可有兩種方式實現多線程,一種是繼承Thread類,一種是實現Runnable接口;Thread類是在java.lang包中定義的。一個類只要繼承了Thread類同時覆寫了本類中的run()方法就可以實現多線程操作了,但是一個類只能繼承一個父類,這是此方法的局限。下面看例子:package org.thread.demo; class MyThread extends Thread private String name; public M
45、yThread(String name) super(); = name; public void run() for(int i=0;i<10;i+) System.out.println("線程開始:"++",i="+i); package org.thread.demo; public class ThreadDemo01 public static void main(String args) MyThread mt1=new MyThread("線程a"); MyThread mt
46、2=new MyThread("線程b"); mt1.run(); mt2.run(); 但是,此時結果很有規律,先第一個對象執行,然后第二個對象執行,并沒有相互運行。在JDK的文檔中可以發現,一旦調用start()方法,則會通過JVM找到run()方法。下面啟動start()方法啟動線程:package org.thread.demo; public class ThreadDemo01 public static void main(String args) MyThread mt1=new MyThread("線程a"); MyThread mt2
47、=new MyThread("線程b"); mt1.start(); mt2.start(); ; 這樣程序可以正常完成交互式運行。那么為啥非要使用start();方法啟動多線程呢?在JDK的安裝路徑下,src.zip是全部的java源程序,通過此代碼找到Thread中的start()方法的定義,可以發現此方法中使用了private native void start0();其中native關鍵字表示可以調用操作系統的底層函數,那么這樣的技術成為JNI技術(java Native Interface)Runnable接口在實際開發中一個多線程的操作很少使用Thread類,而
48、是通過Runnable接口完成。public interface Runnable public void run(); 例子:package org.runnable.demo; class MyThread implements Runnable private String name; public MyThread(String name) = name; public void run() for(int i=0;i<100;i+) System.out.println("線程開始:"++",i="+
49、i); ; 但是在使用Runnable定義的子類中沒有start()方法,只有Thread類中才有。此時觀察Thread類,有一個構造方法:public Thread(Runnable targer)此構造方法接受Runnable的子類實例,也就是說可以通過Thread類來啟動Runnable實現的多線程。(start()可以協調系統的資源):package org.runnable.demo; import org.runnable.demo.MyThread; public class ThreadDemo01 public static void main(String args) My
50、Thread mt1=new MyThread("線程a"); MyThread mt2=new MyThread("線程b"); new Thread(mt1).start(); new Thread(mt2).start(); 兩種實現方式的區別和聯系:在程序開發中只要是多線程肯定永遠以實現Runnable接口為主,因為實現Runnable接口相比繼承Thread類有如下好處:避免點繼承的局限,一個類可以繼承多個接口。適合于資源的共享以賣票程序為例,通過Thread類完成:package org.demo.dff; class MyThread ex
51、tends Thread private int ticket=10; public void run() for(int i=0;i<20;i+) if(this.ticket>0) System.out.println("賣票:ticket"+this.ticket-); ; 下面通過三個線程對象,同時賣票:package org.demo.dff; public class ThreadTicket public static void main(String args) MyThread mt1=new MyThread(); MyThread mt2=
52、new MyThread(); MyThread mt3=new MyThread(); mt1.start();/每個線程都各賣了10張,共賣了30張票 mt2.start();/但實際只有10張票,每個線程都賣自己的票 mt3.start();/沒有達到資源共享 如果用Runnable就可以實現資源共享,下面看例子:package org.demo.runnable; class MyThread implements Runnable private int ticket=10; public void run() for(int i=0;i<20;i+) if(this.tick
53、et>0) System.out.println("賣票:ticket"+this.ticket-); package org.demo.runnable; public class RunnableTicket public static void main(String args) MyThread mt=new MyThread(); new Thread(mt).start();/同一個mt,但是在Thread中就不可以,如果用同一 new Thread(mt).start();/個實例化對象mt,就會出現異常 new Thread(mt).start();
54、; 雖然現在程序中有三個線程,但是一共賣了10張票,也就是說使用Runnable實現多線程可以達到資源共享目的。Runnable接口和Thread之間的聯系:public class Thread extends Object implements Runnable發現Thread類也是Runnable接口的子類。3.5 本章小結本章詳細的劃分了整個項目的開發模塊,及各個模塊的詳細設計,最后對整個項目的包結構和項目資源路徑做了簡單的剖析和介紹。第4章 系統功能的實現第4章 系統功能的實現界面是呈現給用戶的,一個界面呈現的友好性會決定用戶是否會接受該系統,對于Android系統而言,界面的友好布
55、局,信息的簡單明了都至關重要。4.1 主界面的功能實現主界面的設計如下圖4-1所示:圖4-1 系統主界面在工程的reslayout目錄下,創建了一個名稱為”activity_main.xml”的布局文件,該文件主要為生成主界面做配置,其布局文件代碼如下:1. <LinearLayout xmlns:android="2. xmlns:tools="3. android:layout_width="match_parent"4. android:layout_height="match_parent"5. android:back
56、ground="drawable/ba1"西安工程大學學士學位論文6. android:gravity="center_horizontal"7. android:orientation="vertical"8. android:paddingBottom="dimen/activity_vertical_margin"9. android:paddingLeft="dimen/activity_horizontal_margin"10. android:paddingRight="dimen/activity_horizontal_margin"11. android:paddingTop="di
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45687-2025立式攪拌磨選型試驗方法
- 2025年現代制造業人才培養考試試卷及答案
- 2025年網絡技術應用考試卷及答案
- 2025年衛生信息管理專科階段考試試題及答案
- 2025年模具設計工程師考試試題及答案反饋
- 2025年翻譯專業資格考試試題及答案
- 2025年肥料學與土壤學基礎考試試題及答案
- 2025年互聯網金融專業考試試題及答案
- 2025年國際經濟與貿易專業綜合素質考試卷及答案
- 2025年公共管理與政策考試試卷及答案
- 《不斷變化的人口問題》核心素養目標教學設計、教材分析與教學反思-2023-2024學年初中歷史與社會人教版新課程標準
- 血液透析惡心嘔吐的應急預案
- 物流倉儲中心項目建設背景和必要性
- 安徽省渦陽縣2023-2024學年七年級下學期期中考試語文試題
- 藝術設計專業面試問題
- 廣東省深圳市龍華區2023-2024學年二年級下學期期中數學試題
- 小學科學湘科版六年級下冊全冊同步練習含答案
- (2024年)傳染病培訓課件
- 公車拍賣拍賣工作方案
- 幼兒園大班教案《娃哈哈》含反思
- C語言課程設計-家庭財務管理系統
評論
0/150
提交評論