




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 畢業(yè)設(shè)計(論文)題 目: 基于安卓平臺的飛機大戰(zhàn)游戲 學(xué) 院: 計算機科學(xué)學(xué)院 專業(yè)班級: 計算機科學(xué)與技術(shù)10級2班 指導(dǎo)教師: 黃國兵 職稱:高級工程師學(xué)生姓名: 趙兵 學(xué) 號: 41009010216 摘 要自從第一臺計算機研發(fā)以來,計算機行業(yè)得到了迅速的發(fā)展,成就了很多優(yōu)秀的企業(yè),例如國外的ibm,微軟,google,arm,蘋果等,國內(nèi)的騰訊,阿里巴巴,百度等,而引領(lǐng)計算機行業(yè)的主要因素除了硬件的支撐外,就數(shù)操作系統(tǒng)了,而操作系統(tǒng)從dos,unix,linux windows等pc端正在逐漸向移動端轉(zhuǎn)變?nèi)纾簭膌inux到android;從unix到ios;從windows到wind
2、ows phone,主要還是因為移動端的便攜性,輕巧性深受人們的喜愛,就在這樣的移動互聯(lián)網(wǎng)浪潮中,android系統(tǒng)更是高達移動端操作系統(tǒng)80%的占有率,真可謂前景無限,而在android平臺的應(yīng)用中游戲業(yè)務(wù)又占著最大的比例,所以本次選題為基于android的飛機大戰(zhàn)游戲,其主要目的研究移動互聯(lián)網(wǎng)的發(fā)展趨勢,對其未來的發(fā)展有深刻清晰的認(rèn)識。本論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言java及eclipse為開發(fā)工具,而基于智能手機android系統(tǒng)之上的飛機大戰(zhàn)游戲。首先簡要介紹課題的研究背景、目的及意義,android的發(fā)展歷程、當(dāng)前國內(nèi)外的發(fā)展現(xiàn)狀。然后介紹了android平臺開發(fā)環(huán)境及環(huán)境搭
3、建,最后講述了基于android飛機大戰(zhàn)游戲功能的實現(xiàn)。其功能模塊如下:提供敵機的類模塊,提供子彈的類模塊,主界面模塊,天空背景模塊,檢測子彈與敵機碰撞模塊,檢測,敵機與我擁有的戰(zhàn)機碰撞木塊等,除此以外還為用戶提供更加人性化的設(shè)計和方便人員的操作流程。由于android逐漸成為智能手機技術(shù)的主導(dǎo),相信其基于android的飛機大戰(zhàn)游戲?qū)艿礁蟮臍g迎。關(guān)鍵字: 安卓,游戲,飛行射擊,飛機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 as high as 80%
6、 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 for its future
7、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 significance, the d
8、evelopment 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 follows: enemy
9、 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 humanized desig
10、n 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 系統(tǒng)研究的背景及意義11.2 國內(nèi)外的發(fā)展現(xiàn)狀11.3 主要研究的內(nèi)容21.4 本文的組織結(jié)構(gòu)21.5 本章小結(jié)3第2章 用戶
11、需求分析42.1系統(tǒng)的架構(gòu)描述42.2 系友好的用戶界面52.3技術(shù)選型62.4系統(tǒng)的開發(fā)環(huán)境62.5 關(guān)鍵技術(shù)和工具簡介72.6 本章小節(jié)8第3章 系統(tǒng)概要設(shè)計93.1 模塊的劃分93.1.1 軟件模塊設(shè)計93.1.2 軟件功能模塊103.2 主界面設(shè)計123.3 游戲界面設(shè)計133.4 系統(tǒng)包及其資源規(guī)劃133.4.1 系統(tǒng)包管理如下133.4.2 sqlite數(shù)據(jù)庫143.4.3 runable接口以及與thread的區(qū)別163.5 本章小結(jié)20第4章 系統(tǒng)功能的實現(xiàn)214.1 主界面的功能實現(xiàn)214.1 游戲界面的功能實現(xiàn)264.3 子彈類的設(shè)計394.3 敵機類的設(shè)計404.5本章小
12、結(jié)42第5章 系統(tǒng)測試435.1 軟件測試的概念435.2 系統(tǒng)的功能和安全測試435.3 測試總結(jié)45第6章 總結(jié)46致 謝47參考文獻48第1章 緒論1.1 系統(tǒng)研究的背景及意義在手機游戲的早期,大多數(shù)開發(fā)者都是想要玩轉(zhuǎn)設(shè)備、學(xué)習(xí)技巧和快速攻關(guān)的狂熱分子。但是,隨著更多的開發(fā)者加入這個行業(yè),手機游戲已經(jīng)進化成涉及到專業(yè)設(shè)計師、構(gòu)造師、開發(fā)者、產(chǎn)品經(jīng)銷商、律師、和藝術(shù)家在內(nèi)的主導(dǎo)產(chǎn)品。這是行業(yè)走向成熟的必然趨勢。盡管在某人的業(yè)余時間內(nèi)要開發(fā)和推銷簡單的游戲更加困難,但是更多的專業(yè)商店將為許多人提供更多的就業(yè)機會。 從手機軟件的平臺的種類,游戲玩家的心理,未來移動通信服務(wù)終端的發(fā)展,3g手機網(wǎng)
13、絡(luò)對手機軟件游戲的影響,還有從j2me手機游戲開發(fā)平臺介紹的手機游戲的趨勢和未來這種游戲的運營模式,這幾方面的內(nèi)容來看,手機游戲是未來游戲發(fā)展的趨勢,其移動性、互連性,必定會帶來網(wǎng)絡(luò)游戲的風(fēng)暴,這就使我們對這一個新興的領(lǐng)域有了一定的概念,對指導(dǎo)我們建立一個手機軟件開發(fā)培訓(xùn)的知識結(jié)構(gòu)有一定的幫助,也是我們的一個發(fā)展契機。本文基于android系統(tǒng)設(shè)計一種輕松休閑的游戲軟件,讓用戶可以使用手機輕松娛樂,因此項目研究和軟件開發(fā)具有重要的實際應(yīng)用價值。1.2 國內(nèi)外的發(fā)展現(xiàn)狀手機游戲(mobile game或wireless game),是指消費者利用隨身攜帶并具有無線網(wǎng)絡(luò)聯(lián)機功能的智能移動終端設(shè)備,
14、能隨時隨地來進行的游戲。手機游戲最大的特點是其隨時隨地進行游戲的便利性。這些年來,手機游戲市場有了很大的發(fā)展,手機游戲已成為使用率最高的手機娛樂應(yīng)用,占到各種手機娛樂應(yīng)用比例的78.4%。在日本,手機游戲市場經(jīng)歷多年的穩(wěn)定增長,市場規(guī)模已經(jīng)超過了850 億日元1。在美國,手機游戲作為美國手機用戶最喜歡的移動應(yīng)用之一,在iphone和android等智能終端推出后發(fā)展迅速。而在中國,根據(jù)易觀智庫產(chǎn)業(yè)數(shù)據(jù)庫最新發(fā)布的2010 年第4 季度中國手機游戲市場季度監(jiān)測數(shù)據(jù)顯示,我國2010 年手機游戲市場規(guī)模已達到32.9 億元,繼續(xù)保持了較快的發(fā)展。2011年以來android實現(xiàn)了計算機誕生以來最快
15、速度的增長,目前android以每天85萬新增激活數(shù)的速度快速征服世界,成為世界范圍內(nèi)占有率最高的智能手機操作系統(tǒng)。根據(jù)comscore的統(tǒng)計,2012年第一季度android在北美的市場占有率又增長了3.7%達到51%;而根據(jù)賽諾的調(diào)研報告,android系統(tǒng)在中國的市場份額高達74.7%,而android游戲在誕生之處就被很多人看好,便宜的價格,小巧的外觀,游戲資源豐富,相對于傳統(tǒng)主機來說,這些都是android游戲機的優(yōu)點,于是一批android游戲陸續(xù)出現(xiàn)了,但事實證明android游戲并非當(dāng)初描繪的那樣美好,開放的android開發(fā)平臺,導(dǎo)致了游戲質(zhì)量和數(shù)量不那么盡如人意,所以在游戲
16、的設(shè)計與研發(fā)過程中游戲的質(zhì)量關(guān)一定要把好。1.3 主要研究的內(nèi)容本設(shè)計項目主要完成一種基于android開發(fā)的一款游戲軟件。項目研究和軟件設(shè)計遵循軟件工程的方法,從需求分析,系統(tǒng)分析,概要設(shè)計,詳細設(shè)計,軟件編碼調(diào)試,到驗證測試,完成本軟件整個過程的設(shè)計開發(fā)。項目研究和軟件設(shè)計的具體任務(wù)包括:(1)加深面向?qū)ο缶幊趟枷耄柟蘪ava語言的設(shè)計模式,掌握android開發(fā)的環(huán)境搭建。(2)學(xué)習(xí)和研究android平臺環(huán)境和軟件接口的設(shè)計。(3)學(xué)習(xí)和研究android平臺多線程。(4)學(xué)習(xí)和研究android系統(tǒng)中用戶界面的動態(tài)顯示。(5)學(xué)習(xí)并掌握sqlite數(shù)據(jù)庫。(6)學(xué)習(xí)并掌握andro
17、id平臺下動態(tài)游戲開發(fā)的重要知識點:surfaceview。1.4 本文的組織結(jié)構(gòu)第1章 緒論 本章主要介紹了課題的研究背景,課題研究的目的與意義,以及該項目所在領(lǐng)域國內(nèi)外發(fā)展?fàn)顩r等,最后指出了本文工作內(nèi)容及論文的組織結(jié)構(gòu)。第2章 軟件需求分析和技術(shù)介紹 本章主要介紹了本系統(tǒng)的技術(shù)構(gòu)架及課題的需求分析與說明,簡單的介紹了項目應(yīng)用的平臺和開發(fā)環(huán)境,并解析了關(guān)鍵技術(shù)的含義。第3章 系統(tǒng)概要設(shè)計 本章是本文比較重要的章節(jié),詳細的劃分了整個項目的開發(fā)模塊,及各個模塊的功能設(shè)計,最后對整個項目的包結(jié)構(gòu)和項目資源路徑做了簡單的剖析和介紹。第4章 系統(tǒng)功能的實現(xiàn) 詳細介紹開發(fā)流程,從建一個android項目
18、開始到最終完成軟件開發(fā)的詳細過程,介紹怎樣檢測飛機碰撞事件,怎樣動態(tài)管理界面,怎樣實現(xiàn)飛機飛行的效果。第5章 系統(tǒng)測試 詳細介紹了測試的概念、目的和方法,并介紹如何利用android自帶的測試工具了系統(tǒng)測試。第6章 總結(jié)。1.5 本章小結(jié)詳細介紹了android游戲開發(fā)的國內(nèi)外現(xiàn)狀,以及本論文主要研究的方向和論文的整體結(jié)構(gòu),從本章中能夠清楚的了解本論文的整體架構(gòu),對以后的各細節(jié)描述都有清晰的認(rèn)識。第2章 用戶需求分析2.1系統(tǒng)的架構(gòu)描述本項目主要面向游戲愛好者,要求項目不會占用太大的資源,并能夠盡量沿用原有的相對成熟的java技術(shù),與android系統(tǒng)進行良好的整合。本設(shè)計主要講述了飛機大戰(zhàn)游
19、戲的基本功能和基于android平臺的軟件開發(fā)、接口的設(shè)計方法。設(shè)計最終達成了開始游戲、關(guān)閉音效、查看得分、退出游戲等android游戲的基本功能。并且系統(tǒng)能夠正常運行,各個頁面交互性較好。在整個設(shè)計中基本運用基礎(chǔ)的android進行功能編程,其中主要利用了surfaceview實現(xiàn)了動態(tài)界面顯示,實現(xiàn)了飛機飛行和發(fā)射子彈等效果。在系統(tǒng)規(guī)劃中先后系統(tǒng)功能結(jié)構(gòu)圖分析了系統(tǒng)所需的各種數(shù)據(jù),詳細的展現(xiàn)了系統(tǒng)的各個功能模塊并給出了主要功能運行界面圖。該游戲軟件目前已有比較完善的管理與使用功能。對學(xué)習(xí)和工作中的學(xué)生和工作人員在閑暇時間放松的好軟件。本系統(tǒng)主要采用模型-視圖-控制器mvc架構(gòu)的設(shè)計模式。m
20、vc架構(gòu)是model-view-controller的縮寫,中文翻譯為模型-視圖-控制器。mvc應(yīng)用程序總是由這三個部分組成。event(事件)導(dǎo)致controller改變model或view,或者同時改變兩者。只要controller改變了models的數(shù)據(jù)或者屬性,所有依賴的view都會自動更新。類似的,只要controller改變了view,view會從潛在的model中獲取數(shù)據(jù)來刷新自己。整個系統(tǒng)的物理架構(gòu)如下:界面surfacevie,模型為常用的子彈飛機類,controller為surfaceholder.callback結(jié)構(gòu)中的回調(diào)函數(shù)。本系統(tǒng)是應(yīng)用android平臺,andro
21、id是一個移動設(shè)備的軟件平臺,由linux+java構(gòu)成的開源軟件,提供包括sdk、key apps、middleware、linux kernel四個部分在內(nèi)的全套手機軟件方案。開放了基于linux內(nèi)核以上的開發(fā)工具,從而保證了內(nèi)容的可移植性和多樣性。android平臺為我們開發(fā)應(yīng)用程序提供了一套很好的框架,我們可以在這個平臺的基礎(chǔ)上開發(fā)不同的應(yīng)用程序,也可以開發(fā)新的組件供應(yīng)用程序調(diào)用。android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,sms短消息程,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用java語言編寫的,本項目也是由java語言編寫。
22、開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的api框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用。任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。android系統(tǒng)架構(gòu)圖如2-1圖所示。圖2-1 android系統(tǒng)架構(gòu)圖2.2 友好的用戶界面本游戲是直接面對用戶的,要求游戲能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求軟件應(yīng)該盡量使用用戶熟悉的術(shù)語和提示消息;針對用戶可能出現(xiàn)的使用問題,要提供足夠的提醒幫助功能,縮短用戶對軟件熟悉的過程。本項目采用androi
23、d平臺,從android的角度分析,android的開發(fā)概括為兩類:一是系統(tǒng)開發(fā),包括底層linux內(nèi)核的裁剪和擴展、硬件驅(qū)動的開發(fā)和系統(tǒng)移植等,從業(yè)人員主要在工作在硬件廠商的公司里。二是應(yīng)用開發(fā),主要包括游戲開發(fā)、android互聯(lián)網(wǎng)客戶端開發(fā)和工具軟件開發(fā)。業(yè)內(nèi)人士預(yù)言android系統(tǒng)將成為手機操作系統(tǒng)領(lǐng)域的“windows”。一個好的功能強大系統(tǒng),必須要進行完善而且全面的系統(tǒng)分析和友好設(shè)計。本項目中,之所以能夠有計劃地進行下去,的確也是緣于良好的系統(tǒng)分析,如若省略這一步直接編程,那難度必然加大,以至于在編程過程中又不得不回過頭來進行系統(tǒng)分析,此時必然拖慢進度,打亂整個系統(tǒng)邏輯,其最終的
24、成品也充滿變數(shù)。本系統(tǒng)在性能功能上應(yīng)達到如下需求:(1) 操作簡單、界面友好: 完全控件式的頁面布局。(2) 游戲的安全性,正在游戲中對可能發(fā)生的突發(fā)事件做出處理,例如,電話來了,或者有信息等。(3) 軟件的響應(yīng)速度要快,保證用戶不會應(yīng)為等待反饋時間過長而放棄本軟件。(4) 軟件的可靠性,能夠真正的帶給游戲者樂趣。(5) 在結(jié)構(gòu)上應(yīng)具有很好的可擴展性,便于將來的功能擴展和維護。根據(jù)以上功能,該系統(tǒng)主要以android為操作平臺,它提供了很大的自由空間,采用java為開發(fā)語言,使系統(tǒng)開發(fā)更加方便快捷,本軟件的目標(biāo)即為成功、完整的體現(xiàn)該系統(tǒng),讓客戶滿意。2.3技術(shù)選型項目整體技術(shù)選型是這樣的,飛機
25、大戰(zhàn)游戲開發(fā)過程中應(yīng)用了java技術(shù)和android sdk提供的類庫,動態(tài)界面采用surfaceview和一些xml文件-,后臺控制使用了surfaceholder.callback接口的回調(diào)方法。常用的資源文件如子彈,和敵機,戰(zhàn)機,背景圖都通過ps自己處理,系統(tǒng)開始時就啟動新線程,一直運行游戲,知道用戶關(guān)閉為止。如下為整體流程圖如下圖2-2所示。2.4系統(tǒng)的開發(fā)環(huán)境2.4.1開發(fā)硬件要求硬件平臺:piv cpu,主頻2.8g,內(nèi)存2g,的pc機或pc服務(wù)器。操作系統(tǒng):microsoft windows72.4.2系統(tǒng)的軟件開發(fā)環(huán)境集成開發(fā)環(huán)境:eclipse3.6+jdk6.0+sdk2.
26、1數(shù)據(jù)庫:mysql5.0編程語言:java 開發(fā)模式:mvc模式 音效資源文件 surfacecreated r.java 回調(diào)方法子彈,敵機類文件surfaceholdercallback接口surfaceview界面圖片資源文件圖2-2 技術(shù)選型模型圖2.5 關(guān)鍵技術(shù)和工具簡介(1)intent intent負責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,android則根據(jù)此intent的描述,負責(zé)找到對應(yīng)的組件,將 intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,intent在這里起著一個媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦
27、。(2)adt與sdkadt為android開發(fā)工具(android development tools)簡稱,是在強大的、集成的環(huán)境eclipse ide中構(gòu)建android應(yīng)用程序插件。adt擴展了eclipse的功能,讓您快速建立新的android項目,創(chuàng)建一個應(yīng)用程序的用戶界面,加上android框架的api組件、調(diào)試應(yīng)用程序使用android sdk工具,以便apk分發(fā)給應(yīng)用程序。sdk即software development kit 的縮寫,中文即“軟件開發(fā)工具包”。廣義上指輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。它可以簡單的為某個程序設(shè)計語言提供應(yīng)用程序接口 api的一
28、些文件,但也可能包括能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。 (3)sqlite數(shù)據(jù)庫 sqlite是一款輕型的數(shù)據(jù)庫,是遵守acid的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百k的內(nèi)存就夠了。它能夠支持windows/linux/unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 tcl、c#、php、java等,還有odbc接口,同樣比起mysql、postgresql這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。sqlite第一個alpha版本誕生于2000年5月。 至
29、今已經(jīng)有14個年頭,sqlite也迎來了一個版本 sqlite 3已經(jīng)發(fā)布。(4)activity activity是android開發(fā)中非常重要的一個基礎(chǔ)類。activity提供了和用戶交互的可視化界面,創(chuàng)建一個activity一般是繼承activity類,并覆蓋activity的oncreate()方法。(5)eclipse與jdk eclipse是一個集成開發(fā)環(huán)境簡稱“ide”,在eclipse環(huán)境下開發(fā)java程序可以大大提高效率,它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的便捷。jdk(java development kit)是sun microsystems針對j
30、ava開發(fā)人員的產(chǎn)品,jdk 是整個java的核心,包括了java運行環(huán)境,java工具和java基礎(chǔ)的類庫。jdk是學(xué)好java的第一步。(6)surfaceview surfaceview由于可以直接從內(nèi)存或者dma等硬件接口取得圖像數(shù)據(jù),因此是個非常重要的繪圖容器,這次我就用兩篇文章來介紹surfaceview的用法。網(wǎng)上介紹surfaceview的用法有很多,寫法也層出不同,例如繼承surfaceview類,或者繼承surfaceholder.callback類等,這個可以根據(jù)功能實際需要自己選擇,我這里就直接在普通的用戶界面調(diào)用surfaceholder的lockcanvas和unl
31、ockcanvasandpost。2.6 本章小節(jié)本章主要介紹了本系統(tǒng)的技術(shù)構(gòu)架及在實際開發(fā)中的用戶需求分析,簡單的介紹了項目應(yīng)用的平臺和開發(fā)環(huán)境,并介紹了關(guān)鍵技術(shù)的含義。第3章 系統(tǒng)概要設(shè)計系統(tǒng)的概要設(shè)計主要是針對系統(tǒng)的總體功能如何設(shè)計,如何劃分模塊,系統(tǒng)的數(shù)據(jù)庫如何設(shè)計進行研究。它為系統(tǒng)的詳細設(shè)計做鋪墊。在系統(tǒng)的設(shè)計過程中起著非常重要的作用。系統(tǒng)設(shè)計是信息開發(fā)過程中的另一個重要階段,在這一階段中將根據(jù)前一階段邏輯分析的結(jié)果,在系統(tǒng)分析報告的基礎(chǔ)上,按照邏輯模型的要求,科學(xué)合理地進行新系統(tǒng)的設(shè)計。系統(tǒng)設(shè)計包含兩個方面:首先是總體結(jié)構(gòu)設(shè)計,其次是具體物理模型的設(shè)計。這個階段的主要目標(biāo)是將反映用
32、戶信息需求的系統(tǒng)邏輯方案轉(zhuǎn)換成可以實施的基于計算機的物理方案,并為下一階段的系統(tǒng)實施提供必要的技術(shù)資料。本系統(tǒng)采用結(jié)構(gòu)化設(shè)計的方法來實現(xiàn)系統(tǒng)總體功能,提高系統(tǒng)的各項指標(biāo),即將整個系統(tǒng)合理的劃分成各個功能模塊,正確地處理模塊之間和模塊內(nèi)部的聯(lián)系以及它們之間的調(diào)用關(guān)系和數(shù)據(jù)聯(lián)系,定義各模塊的內(nèi)部結(jié)構(gòu),通過對模塊的設(shè)計和模塊之間關(guān)系的系統(tǒng)來實現(xiàn)整個系統(tǒng)的功能。3.1 模塊的劃分本系統(tǒng)整體劃分為三個模塊,分別為主界面,即android游戲軟件登錄界面,游戲模塊,游戲運行中的界面模塊,用來處理用戶觸摸響應(yīng),還有得分統(tǒng)計模塊,用來存儲獲的分?jǐn)?shù)。3.1.1 軟件模塊設(shè)計用戶界面是使用者最直接接觸的東西,包括
33、是否能夠讓客戶很輕松、方便的使用,操作響應(yīng)時間、主機連接時間、圖片綜合質(zhì)量、首頁布局質(zhì)量、首頁信息類型等。一般來說,一個界面主要由下面幾個因素構(gòu)成:(1)文字:文字元素是信息傳達的主體部分。界面中的文字主要包括標(biāo)題、信息、文字鏈接幾種主要形式。標(biāo)題和傳統(tǒng)媒體中信息傳達的基本作用相同,是內(nèi)容的簡概說明,一般比較醒目、優(yōu)先編排。文字作為占據(jù)頁面重要比率的元素,同時又是信息重要載體,它的字體、大小、顏色和排布對頁面整體設(shè)計影響極大。(2)圖形:圖形在界面中具有重要作用。合理的運用圖形,可以生動直觀、形象地表現(xiàn)設(shè)計主題。網(wǎng)頁中常用的圖形格式包括jpg和png,這兩種格式壓縮比高,得到了android平
34、臺的支持,圖形元素包括標(biāo)題、背景、主圖、鏈接圖標(biāo)四種。(3)界面版式:版式是界面設(shè)計的重要組成部分,它將文字、圖形等視覺元素進行組合配置,使頁面整體視覺效果美觀和諧,便于閱讀,操作,實現(xiàn)信息傳達的最佳效果。 android游戲系統(tǒng)的界面設(shè)計也是綜合了文字,圖形等元素。使每一個功能有文字與圖片的共同描述,達到看圖就大概知道此鍵是什么功能的目的,最終的目的還是為了使用者能夠快速上手,不至于因為操作的不得當(dāng)而放棄此系統(tǒng)。3.1.2 軟件功能模塊 圖3-1 整體結(jié)構(gòu)圖a) 游戲模塊:負責(zé)游戲運行的主線程,在一個android 程序開始運行的時候,會單獨啟動一個process。默認(rèn)的情況下,所有這個程序
35、中的activity或者service(service和 activity只是android提供的components中的兩種,除此之外還有content provider和broadcast receiver)都會跑在這個process。 一個android 程序默認(rèn)情況下也只有一個process,但一個process下卻可以有許多個thread。在這么多thread當(dāng)中,有一個thread,我們稱之為ui thread。ui thread在android程序運行的時候就被創(chuàng)建,是一個process當(dāng)中的主線程main thread,主要是負責(zé)控制ui界面的顯示、更新和控件交互。在andro
36、id程序創(chuàng)建之初,一個process呈現(xiàn)的是單線程模型,所有的任務(wù)都在一 個線程中運行。因此,我們認(rèn)為,ui thread所執(zhí)行的每一個函數(shù),所花費的時間都應(yīng)該是越短越好。而其他比較費時的工作(訪問網(wǎng)絡(luò),下載數(shù)據(jù),查詢數(shù)據(jù)庫等),都應(yīng)該交由子線程去執(zhí)行, 以免阻塞主線程。那么,ui thread如何和其他thread一起工作呢?常用方法是:誕生一個主線程的handler物件,當(dāng)做listener去讓子線程能將訊息push到主線程的message quene里,以便觸發(fā)主線程的handlermessage()函數(shù),讓主線程知道子線程的狀態(tài),并在主線程更新ui。b)頁面布局模塊(圖形模塊):雖然有
37、的游戲不需要不斷的重新繪制屏幕,但是假設(shè)你想要的游戲需要不間斷的繪制屏幕,這是個簡單的概念并且你不需要去關(guān)注任何臟標(biāo)記或者去關(guān)注在某些游戲狀態(tài)改變的情況下重新繪制屏幕。我們已經(jīng)知道ui線程不是一直不間斷的運行的,而是在事件的驅(qū)動下有操作系統(tǒng)調(diào)度運行的。這就是我們?yōu)槭裁磳嵗诙€線程,也就是我們通常說的渲染線程,這個線程是由graphics模塊所創(chuàng)建,graphics模塊本身由應(yīng)用模塊在程序啟動的時候?qū)嵗?。渲染線程執(zhí)行一個無限循環(huán),由于應(yīng)用程序的生命周期事件,它可能會被暫?;蛘呋謴?fù)。作為開發(fā)者,你可以通過注冊一個renderlisterner將這個線程與圖形模塊連接起來.在我們進入這些方法的
38、詳解之前,我先給你介紹一些細節(jié):libgdx使用opengl es,這個是移動設(shè)備上硬件加速圖像渲染的工業(yè)標(biāo)準(zhǔn)。opengl es同一個叫做egl的東西一起使用,egl負責(zé)設(shè)立一個窗口系統(tǒng)和圖像硬件的鏈接,它創(chuàng)建一個渲染表面,用戶可以添加一個用戶界面組件到上面,圖形硬件可以不通過使用ui工具包直接渲染。opengl es自身額外的添加了一個叫做圖形上下文的東西,他用于管理駐留在顯存中的圖形資源,舉個例子:這些資源可以是一個紋理,它從本質(zhì)上來說就是一張位圖,opengles將其建立在egl的表面和背景,通過圖形處理處理器獲得高質(zhì)量的圖片。c)游戲配置模塊:對于音效的管理。d)游戲介紹模塊:游戲有
39、智力游戲和活動性游戲之分,前者如下棋、積木、打牌等,后者如追逐、接力及利用球、棒、繩等器材進行的活動,多為集體活動,并有情節(jié)和規(guī)則,具有競賽性。當(dāng)前日常用語中的“游戲”多指各種平臺上的電子游戲。電子游戲有單機版和網(wǎng)絡(luò)游戲。3.2 主界面設(shè)計 飛機大戰(zhàn)開始游戲退出游戲功能塊音效管理關(guān)于我們歷史記錄圖3-2 主界面設(shè)計圖a) 開始游戲:其中一個activity,在其調(diào)用setcontentview()時,調(diào)用我們自己定義的游戲界面,該游戲界面使我們自己通過一個類實現(xiàn)的游戲界面,在該類中繼承了surfaceview,并實現(xiàn)了surfaceholder.callback接口和runnable接口,在該
40、類的回調(diào)函數(shù)surfacecreated()中啟動游戲線程并一直進行游戲直到出現(xiàn)失誤時就關(guān)閉該線程。b) 退出游戲,關(guān)閉該應(yīng)用,當(dāng)我們玩游戲時,想休息會或者想退出游戲時點擊該按鈕,退出游戲c) 音效管理:可以管理在玩游戲時對背景音樂的管理d) 描述該軟件的開發(fā)時間,開發(fā)人員和本軟件的一些基本信息介紹。3.3 游戲界面設(shè)計采用分層管理,具體效果如3-3圖所示:圖3-3 游戲界面圖3.4 系統(tǒng)包及其資源規(guī)劃在軟件項目管理過程中一個關(guān)鍵的活動是制定項目計劃,它是軟件開發(fā)工作的第一步。 項目計劃的目標(biāo)是為項目負責(zé)人提供一個框架,使之能合理地估算軟件項目開發(fā)所需的資源 、經(jīng)費和開發(fā)進度,并控制軟件項目開
41、發(fā)過程按此計劃進行。 在做計劃時,必須就需要的人力、項目持續(xù)時間及成本作出估算。這種估算大多是參考 以前的花費作出的。軟件項目計劃包括二個任務(wù):研究和估算。即通過研究確定該軟件 項目的主要功能、性能和系統(tǒng)界面。3.4.1 系統(tǒng)包管理如下本游戲采用eclipse中開發(fā)android項目的默認(rèn)框架,采用eclipse開發(fā)的框架圖如圖3-4結(jié)構(gòu)所示圖3-4 項目資源包管理3.4.2 sqlite數(shù)據(jù)庫sqlite數(shù)據(jù)庫是一款輕型的數(shù)據(jù)庫,它嵌入在android系統(tǒng)中,由于沒有數(shù)據(jù)庫操作的圖形界面和客戶端,所以我們只能通過命令進入android系統(tǒng)中,進行數(shù)據(jù)庫的操作。android給我們提供了一系列
42、系統(tǒng)工具可以訪問sqlite數(shù)據(jù)庫。android debug bridge(adb)是android的一個通用調(diào)試工具,它可以更新設(shè)備或模擬器中的代碼,可以管理預(yù)定端口,可以在設(shè)備上運行shell命令,我們知道android是基于linux內(nèi)核,它的內(nèi)部文件結(jié)構(gòu)也是采用linux文件組織方式,因此訪問它的文件結(jié)構(gòu)需要使用shell。這次我們就會用shell來訪問android應(yīng)用中的sqlite數(shù)據(jù)庫文件。1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數(shù)shell,出現(xiàn)#號就代表進入了shell命令模式,注意adb要在android模擬器運行時才能進入shell
43、。執(zhí)行如下圖3-5所示。圖3-5 進入shell命令模式2、shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當(dāng)前目錄下文件列表和進入到指定目錄。了解這兩個命令之后,就可以找到data/data/項目包名/databases。找到數(shù)據(jù)庫文件,接下來就是使用sqlite管理工具來進行操作了。鍵入sqlite3+數(shù)據(jù)庫名就進入了sqlite管理模式了。執(zhí)行過程如下圖3-6所示。圖3-6 進入sqlite管理模式3.4.3 runable接口以及與thread的區(qū)別在java中可有兩種方式實現(xiàn)多線程,一種是繼承thread類,一種是實現(xiàn)runnable接
44、口;thread類是在java.lang包中定義的。一個類只要繼承了thread類同時覆寫了本類中的run()方法就可以實現(xiàn)多線程操作了,但是一個類只能繼承一個父類,這是此方法的局限。下面看例子:package org.thread.demo; class mythread extends thread private string name; public mythread(string name) super(); = name; public void run() for(int i=0;i10;i+) system.out.println(線程開始:+this.na
45、me+,i=+i); package org.thread.demo; public class threaddemo01 public static void main(string args) mythread mt1=new mythread(線程a); mythread mt2=new mythread(線程b); mt1.run(); mt2.run(); 但是,此時結(jié)果很有規(guī)律,先第一個對象執(zhí)行,然后第二個對象執(zhí)行,并沒有相互運行。在jdk的文檔中可以發(fā)現(xiàn),一旦調(diào)用start()方法,則會通過jvm找到run()方法。下面啟動start()方法啟動線程:package org.th
46、read.demo; public class threaddemo01 public static void main(string args) mythread mt1=new mythread(線程a); mythread mt2=new mythread(線程b); mt1.start(); mt2.start(); ; 這樣程序可以正常完成交互式運行。那么為啥非要使用start();方法啟動多線程呢?在jdk的安裝路徑下,src.zip是全部的java源程序,通過此代碼找到thread中的start()方法的定義,可以發(fā)現(xiàn)此方法中使用了private native void star
47、t0();其中native關(guān)鍵字表示可以調(diào)用操作系統(tǒng)的底層函數(shù),那么這樣的技術(shù)成為jni技術(shù)(java native interface)runnable接口在實際開發(fā)中一個多線程的操作很少使用thread類,而是通過runnable接口完成。public interface runnable public void run(); 例子:package org.runnable.demo; class mythread implements runnable private string name; public mythread(string name) = name;
48、public void run() for(int i=0;i100;i+) system.out.println(線程開始:++,i=+i); ; 但是在使用runnable定義的子類中沒有start()方法,只有thread類中才有。此時觀察thread類,有一個構(gòu)造方法:public thread(runnable targer)此構(gòu)造方法接受runnable的子類實例,也就是說可以通過thread類來啟動runnable實現(xiàn)的多線程。(start()可以協(xié)調(diào)系統(tǒng)的資源):package org.runnable.demo; import org.runnable.de
49、mo.mythread; public class threaddemo01 public static void main(string args) mythread mt1=new mythread(線程a); mythread mt2=new mythread(線程b); new thread(mt1).start(); new thread(mt2).start(); 兩種實現(xiàn)方式的區(qū)別和聯(lián)系:在程序開發(fā)中只要是多線程肯定永遠以實現(xiàn)runnable接口為主,因為實現(xiàn)runnable接口相比繼承thread類有如下好處:避免點繼承的局限,一個類可以繼承多個接口。適合于資源的共享以賣票程序
50、為例,通過thread類完成:package org.demo.dff; class mythread extends thread private int ticket=10; public void run() for(int i=0;i0) 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=new mythread(); mythread mt3=n
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北黃岡應(yīng)急管理職業(yè)技術(shù)學(xué)院《國際商務(wù)策劃》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 5 Topic 2 Section C 教學(xué)設(shè)計 2024-2025學(xué)年仁愛科普版八年級英語下冊
- 比例的認(rèn)識(教學(xué)設(shè)計)-2023-2024學(xué)年六年級下冊數(shù)學(xué)北師大版
- 慶陽職業(yè)技術(shù)學(xué)院《工業(yè)通風(fēng)與除塵》2023-2024學(xué)年第二學(xué)期期末試卷
- 宣化科技職業(yè)學(xué)院《建筑風(fēng)景速寫》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧現(xiàn)代服務(wù)職業(yè)技術(shù)學(xué)院《食品生物化學(xué)(實驗)》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟南2024年山東濟南市章丘區(qū)社區(qū)工作者招考10人筆試歷年參考題庫附帶答案詳解
- 信陽師范大學(xué)《語文課堂教學(xué)技能》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟南護理職業(yè)學(xué)院《中西醫(yī)結(jié)合實驗診斷研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南質(zhì)量工程職業(yè)學(xué)院《結(jié)構(gòu)化學(xué)C》2023-2024學(xué)年第二學(xué)期期末試卷
- 小兒急性中毒的處理與急救
- 涂裝工技能鑒定考試題庫匯總-下(多選、判斷題部分)
- 非遺傳統(tǒng)文化課件
- 橋梁施工常見問題及預(yù)防控制要點(PPT,46)
- 中俄文一般貿(mào)易合同范本
- 知情同意書核查要點課件
- 廣東省深圳市2021-2022學(xué)年高二下學(xué)期期末考試 語文 Word版含解析
- 專項施工方案專家論證意見回復(fù)表
- 《醫(yī)古文》教學(xué)全套課件580頁
- 水電廠計算機監(jiān)控系統(tǒng)改造技術(shù)要求
- 勝利油田壓驅(qū)技術(shù)工藝研究進展及下步工作方向
評論
0/150
提交評論