版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南 京 工 程 學(xué) 院畢業(yè)設(shè)計(jì)說(shuō)明書(論文)作 者: 朱俊杰 學(xué) 號(hào): 202090310 院 系: 計(jì)算機(jī)工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 題 目: 射擊類手機(jī)游戲的研究與設(shè)計(jì) 指導(dǎo)者: 夏官夢(mèng) 講師 評(píng)閱者: 2014年5月 南 京 本文闡述了一個(gè)基于安卓平臺(tái)的射擊類手機(jī)游戲的研究、設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。在眾多游戲類型中,飛行射擊游戲是一種很典型的游戲,這種類型的游戲操作簡(jiǎn)單,畫面炫麗,根據(jù)指定的方位擊中目標(biāo),能設(shè)置游戲的場(chǎng)景,購(gòu)買和選擇各種游戲道具,制定各種通關(guān)規(guī)則,制定得分標(biāo)準(zhǔn),能記錄用戶信息和用戶上次玩游戲的得分和排名等。 本課題基于Android系統(tǒng)和java語(yǔ)言技術(shù),實(shí)現(xiàn)了一個(gè)基于
2、安卓手機(jī)平臺(tái)的飛行射擊類游戲。該游戲具體包含的功能模塊有:游戲開始模塊、關(guān)卡選擇模塊、游戲進(jìn)行模塊、道具商店模塊和排行榜模塊等。 其中重點(diǎn)實(shí)現(xiàn)了碰撞檢測(cè)和游戲人工智能的跟蹤算法等。圖形界面模塊重點(diǎn)實(shí)現(xiàn)各個(gè)界面的繪制,其中涉及雙緩沖繪圖技術(shù)、游戲界面縱向屏幕滾動(dòng)技術(shù)等。關(guān)鍵字:Android系統(tǒng),飛行射擊游戲,Java語(yǔ)言,圖形界面,游戲音效。畢業(yè)設(shè)計(jì)說(shuō)明書(論文)中文摘要畢業(yè)設(shè)計(jì)說(shuō)明書(論文)外文摘要Title Designing and Completing of Mobile Telephone Games Based on Android Platform Abstract This a
3、rticle expounds a shooter game based on android platform of the research, design, and implementation process。 In numerous game type, flight shooting game is a very typical, this type of game, simple operation and glamorous images, according to the specified azimuth hit the mark, can set the scene of
4、 the game, buy and choose all kinds of game props, set all kinds of customs rules, formulate score standards, to record the user information and user score and ranking of last time to play games。 This topic is based on the Android system technology and the Java language, realizes a flight shooting g
5、ame based on Android platform。 The game contains specific function modules include: game starts to choose the module, the module, the levels of module, prop store module and list module, etc。 The key to realize the collision detection and tracking algorithm of game ai, etc。 Key realization of each i
6、nterface drawing graphical interface module, including double buffer drawing technology, vertical scroll game interface technology。 Keywords:Android system,F(xiàn)light shooting mobile games,Java language,Graphical interface,Game sound。目錄前 言1第一章 系統(tǒng)分析21.1 可行性分析21.2 系統(tǒng)流程圖41.3 系統(tǒng)流程分析5第二章 系統(tǒng)實(shí)現(xiàn)技術(shù)62.1 搭建開發(fā)環(huán)境(基于
7、安卓2.2)62.2 安卓系統(tǒng)特點(diǎn)8第三章 總體設(shè)計(jì)103.1 系統(tǒng)流程圖103.2 游戲流程示意圖113.3 游戲類框架以及類功能113.4 程序結(jié)構(gòu)173.5 片頭動(dòng)畫實(shí)現(xiàn)23233.6 主菜單界面253.7 開始游戲界面293.8 開啟和關(guān)閉聲音373.9 排行榜按鈕39第四章 詳細(xì)設(shè)計(jì)414.1 游戲背景的滾動(dòng)414.2 我方飛機(jī)的移動(dòng)方法424.3 實(shí)體碰撞判斷43434.4 安卓數(shù)據(jù)庫(kù)的實(shí)現(xiàn)4444第五章 測(cè)試及性能分析505.1 測(cè)試過(guò)程及方法505.2 測(cè)試過(guò)程515.3 性能分析總結(jié)52第六章 結(jié)論53致 謝54參考文獻(xiàn)55附錄:英文技術(shù)資料翻譯56i前 言隨著3G和4G移動(dòng)
8、通信網(wǎng)絡(luò)的大力推廣,移動(dòng)設(shè)備越來(lái)越普及,伴隨著移動(dòng)設(shè)備硬件質(zhì)量的提升,手機(jī)的其功能也越來(lái)越完善,手機(jī)端的操作系統(tǒng)平臺(tái)也日漸火熱起來(lái)。目前國(guó)內(nèi)最常見的移動(dòng)系統(tǒng)平臺(tái)有IOS,Windows Phone以及當(dāng)下最流行的Android系統(tǒng),根據(jù)Google公司最新的移動(dòng)設(shè)備操作系統(tǒng)市場(chǎng)分析,Android已占到全球64。2%的市場(chǎng)份額,并且這個(gè)數(shù)據(jù)仍處于上升階段。根據(jù)對(duì)谷歌電子市場(chǎng)中的Android應(yīng)用程序的調(diào)查發(fā)現(xiàn),該市場(chǎng)中絕大部分的軟件都是游戲軟件。Android平臺(tái)的開放性及服務(wù)的免費(fèi)性大大降低了安卓應(yīng)用開發(fā)的門檻,使得開發(fā)者在游戲開發(fā)中投入成本相對(duì)較少。而隨著技術(shù)的發(fā)展手機(jī)終端的特性使其具備了
9、地理位置、重力感應(yīng)、觸摸控制等固定終端所不具備的特性,更容易開發(fā)出具有創(chuàng)意的游戲產(chǎn)品。Android設(shè)備數(shù)量的持續(xù)增長(zhǎng)使得這個(gè)市場(chǎng)對(duì)優(yōu)質(zhì)游戲的需求也越來(lái)越大。本課題的主要目的在于主要實(shí)現(xiàn)一套Android飛行射擊游戲開發(fā)的解決方案,解決目前在Android游戲開發(fā)中所面臨的幾大問(wèn)題。主要有游戲的關(guān)卡切換,游戲地圖數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)、應(yīng)用多種手機(jī)內(nèi)置傳感器進(jìn)行游戲控制、游戲動(dòng)畫的實(shí)現(xiàn)、基于圖形的碰撞檢測(cè)、數(shù)據(jù)在手機(jī)系統(tǒng)和網(wǎng)絡(luò)上存儲(chǔ)及人工智能的實(shí)現(xiàn)。 在畢業(yè)設(shè)計(jì)的前期準(zhǔn)備過(guò)程中,我搜集了安卓開發(fā)方面大量的相關(guān)資料,對(duì)Android的系統(tǒng)架構(gòu)及特征進(jìn)行了研究,對(duì)安卓的開發(fā)工具ADT有了詳細(xì)的了解,安卓作
10、為Java語(yǔ)言在移動(dòng)端的另一種實(shí)現(xiàn)技術(shù),通過(guò)對(duì)安卓開發(fā)技術(shù)的研究,讓我可以掌握一門移動(dòng)端的開發(fā)技術(shù),并對(duì)自己的畢業(yè)設(shè)計(jì)課題有更深層次的了解,同時(shí)為接下來(lái)的工作打下良好的基礎(chǔ)。0南京工程學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(論文)第一章 系統(tǒng)分析1.1 可行性分析1.1.1 可行性分析意義可行性分析最根本的任務(wù)是對(duì)以后的行動(dòng)方針提出建議。如果問(wèn)題最終沒有可行的解決方案,分析員應(yīng)該建議立即停止這項(xiàng)開發(fā)工程,以避免時(shí)間、資源、人力和金錢的浪費(fèi);如果問(wèn)題值得解決,分析員應(yīng)該推薦一個(gè)較好的解決方案,并且為工程制定一個(gè)初步的計(jì)劃??尚行苑治鼍唧w可分為如下四個(gè)方面:1) 經(jīng)濟(jì)上的可行性:開發(fā)這個(gè)游戲是否需要很多的資金?2)
11、技術(shù)上的可行性:開發(fā)這個(gè)游戲的技術(shù)是否難度很大?3)資源上的可行性:是否可以獲得卡法這個(gè)游戲所需的資源?4)管理上的可行性:在游戲開發(fā)的過(guò)程中是否能方便查找到的需要的資料?1.1.2 可行性分析報(bào)告以下是將可行性分析轉(zhuǎn)化為的可行性報(bào)告:經(jīng)濟(jì)上的可行性:由于安卓系統(tǒng)的開源性,對(duì)于系統(tǒng)方面無(wú)需再額外投入多余的資金,現(xiàn)在使用安卓系統(tǒng)以及安卓游戲的的用戶越來(lái)越多,各種各樣的應(yīng)用市場(chǎng)存在著大量的機(jī)遇,此時(shí)開發(fā)一款簡(jiǎn)單易用的安卓游戲存在著很高的成功率,有著如此龐大的安卓用戶群和免費(fèi)易用的推廣平臺(tái),正是我選擇這個(gè)畢設(shè)課題的原因。技術(shù)上的可行性:開發(fā)所使用的Java語(yǔ)言是一種跨平臺(tái)的語(yǔ)言,java先天就具有很
12、大的優(yōu)勢(shì),其面向?qū)ο蟮奶匦砸脖阌趯W(xué)習(xí)和使用。Android系統(tǒng)的開發(fā)過(guò)程中就是以Java為核心語(yǔ)言的系統(tǒng),所以使用java對(duì)于開發(fā)安卓類的軟件有很大的優(yōu)勢(shì)。ADT是一款google公司為安卓程序員專門開發(fā)的工具,功能已經(jīng)相當(dāng)成熟,并且得到業(yè)界的廣泛承認(rèn),是安卓開發(fā)人員的重要工具。綜上所述,本系統(tǒng)采用Java作為開發(fā)語(yǔ)言,使用ADT作為開發(fā)過(guò)程中所使用的默認(rèn)工具。資源上的可行性:開發(fā)本系統(tǒng)無(wú)需特殊設(shè)備與環(huán)境,開發(fā)所需要的設(shè)備和資源都可以分方便的獲得,所以資源上具有可行性。管理上的可行性:現(xiàn)在市面上有好多的安卓方面專業(yè)的資料,學(xué)校圖書館內(nèi)也有很多的講述安卓開發(fā)的書籍。所以在開發(fā)的過(guò)程中需要獲得資料
13、的過(guò)程也很方便。因此在管理上也具有可行性。1.2 系統(tǒng)流程圖1.2.1 系統(tǒng)流程圖如下圖 1-1 系統(tǒng)流程圖1.3 系統(tǒng)流程分析1.3.1 開場(chǎng)動(dòng)畫開場(chǎng)動(dòng)畫播放的是一段存儲(chǔ)在SD卡的plane文件夾下的視頻,在開場(chǎng)動(dòng)畫播放的過(guò)程中可以選擇跳過(guò)或者看完,跳過(guò)的方法為點(diǎn)擊屏幕任意位置,當(dāng)動(dòng)畫播放完成或者跳過(guò)后,游戲會(huì)自動(dòng)進(jìn)入選擇界面。選擇界面上有四個(gè)按鈕,分別為:開始游戲按鈕,聲音開關(guān)按鈕,排行榜按鈕,還有道具商店,每個(gè)按鈕都對(duì)應(yīng)各自的功能。開始游戲按鈕可以進(jìn)入游戲的界面,聲音開關(guān)按鈕可以控制聲音的開啟和關(guān)閉,排行榜按鈕可以看歷史積分的排行,道具商店按鈕可以對(duì)飛機(jī)和子彈的等級(jí)等進(jìn)行購(gòu)買。關(guān)卡選擇界
14、面可以選擇相應(yīng)的關(guān)卡,只有已經(jīng)通關(guān)的關(guān)卡才可以直接進(jìn)入,未通關(guān)的關(guān)卡按鈕顯示為灰色,且不可以直接進(jìn)入,已通關(guān)的最大關(guān)卡數(shù)會(huì)存儲(chǔ)在數(shù)據(jù)庫(kù)中,點(diǎn)擊開始游戲后,玩家就可以進(jìn)入游戲界面,玩家可以控制一架飛機(jī),有初始血量,子彈無(wú)限,當(dāng)消滅完一定數(shù)量的敵機(jī)后,會(huì)出現(xiàn)boss,當(dāng)boss被消滅掉后,會(huì)進(jìn)入下一關(guān),游戲總共有六關(guān)。當(dāng)玩家通過(guò)總共的六關(guān)后,會(huì)進(jìn)入通關(guān)界面,該界面有背景圖片和背景音樂(lè),且會(huì)顯示玩家的總積分。排行榜界面,會(huì)顯示玩家歷史積分排行,且沒有重復(fù),最多有八個(gè),按從大到小排列,這些數(shù)據(jù)都是存儲(chǔ)在數(shù)據(jù)庫(kù)中。商店界面,可以對(duì)飛機(jī)、子彈等級(jí)、超級(jí)子彈數(shù)量等進(jìn)行購(gòu)買,可查看個(gè)人的總金幣數(shù)量,購(gòu)買相應(yīng)道
15、具的時(shí)候會(huì)扣除對(duì)應(yīng)金幣,商店界面右下角有一個(gè)小鎖按鈕,該功能為游戲數(shù)據(jù)重置鍵,可對(duì)游戲數(shù)據(jù)進(jìn)行重置。第二章 系統(tǒng)實(shí)現(xiàn)技術(shù)2.1 搭建開發(fā)環(huán)境(基于安卓2.2)安裝準(zhǔn)備下載相關(guān)軟件:1)JDK2)ADT3)安卓手機(jī)驅(qū)動(dòng)安裝步驟第一步:安裝JDK 1.7第二步:安裝ADT第三步:安裝安卓手機(jī)驅(qū)動(dòng)第四步:測(cè)試是否連接成功2.1.1 安裝JDK./technetwork/java/javase/downloads/index.html。圖 2-1 下載jdk安裝jdk 選擇安裝目錄 安裝過(guò)程中會(huì)出現(xiàn)兩次 安裝提示 。第一次是安裝 jdk ,第二次是安裝 jre 。建議兩個(gè)都安裝在同
16、一個(gè)java文件夾中的不同文件夾中(不能都安裝在java文件夾的根目錄下,jdk和jre安裝在同一文件夾會(huì)出錯(cuò))。安裝完jdk后配置環(huán)境變量 計(jì)算機(jī)屬性高級(jí)系統(tǒng)設(shè)置高級(jí)環(huán)境變量。新版的jdk只需配置path路徑即可。圖 2-2 配置環(huán)境變量Path需要定位到j(luò)dk安裝路徑下的bin目錄下,保存后打開一個(gè)cmd窗口輸入 java -version(java和-version之間有空格)若如圖所示顯示版本信息,則說(shuō)明安裝和配置成功。圖 2-3 配置成功2.1.2 安裝ADT.android /sdk/index.html.如下圖所示:圖 2-4 下載ADTADT是一個(gè)綠色版的開發(fā)工具,下載ADT包
17、可以快速開始開發(fā)應(yīng)用程序,且無(wú)需其他配置。2.1.3 安裝安卓手機(jī)驅(qū)動(dòng)由于使用avd(安卓虛擬化設(shè)備)來(lái)開發(fā)測(cè)試存在各種不足之處,通過(guò)查閱相關(guān)資料,我發(fā)現(xiàn),開發(fā)安卓應(yīng)用的時(shí)候可以直接通過(guò)真機(jī)來(lái)測(cè)試,可大大提高開發(fā)效率。本人使用的是小米2s通過(guò)豌豆莢手機(jī)助手來(lái)安裝手機(jī)驅(qū)動(dòng),在手機(jī)連接電腦前需打開手機(jī)里的調(diào)試模式開關(guān)。至此安卓開發(fā)環(huán)境搭建完畢。2.2 安卓系統(tǒng)特點(diǎn) 1、應(yīng)用程序框架支持組件的重用與替換這樣我們就可以把系統(tǒng)中我們不喜歡的應(yīng)用程序替換刪除,安裝我們自己喜歡的應(yīng)用程序。2、Dalvik虛擬機(jī)專門為移動(dòng)設(shè)備進(jìn)行了優(yōu)化Android應(yīng)用程序由java編寫,編譯的類文件通過(guò)DX工具轉(zhuǎn)換成一種后
18、綴名為。dex的文件來(lái)執(zhí)行。Dalvik虛擬機(jī)是基于寄存器的,相對(duì)于java虛擬機(jī)的速度要快上很多。3、內(nèi)部集成瀏覽器基于開源的webkit引擎有了內(nèi)置的瀏覽器,這將意味著wap應(yīng)用的時(shí)代將結(jié)束,真正的移動(dòng)互聯(lián)網(wǎng)時(shí)代已經(jīng)來(lái)臨。手機(jī)就是一臺(tái)小電腦,可以在網(wǎng)上任意遨游。4、優(yōu)化的圖形庫(kù)包括2D和3D圖形庫(kù),3D圖形庫(kù)基于OpenGL ES 1.0強(qiáng)大的圖形庫(kù)給游戲開發(fā)者帶來(lái)了福音,在3G時(shí)代最為重要的應(yīng)用莫過(guò)于手機(jī)上網(wǎng)和手機(jī)游戲。5、SQLite用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它
19、,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合。 6、多媒體文件的支持豐富支持包括常見的音頻,視頻和靜態(tài)映像文件格式,如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF。7、GSM (依賴于硬件)功能8、藍(lán)牙(Bluetooth),EDGE,3G,Wifi(依賴于硬件)功能9、照相機(jī),GPS,指南針和加速度計(jì)(依賴于硬件)功能10、豐富的開發(fā)環(huán)境包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表和Eclipse集成的開發(fā)環(huán)境插件。11、豐富的開發(fā)包Google提供
20、了Android開發(fā)包SDK,其中包含了大量的類庫(kù)和開發(fā)工具,以及針對(duì)Eclipse的可視化開發(fā)插件ADT。第三章 總體設(shè)計(jì)3.1 系統(tǒng)流程圖開始游戲 = 被擊落,游戲失敗 打敗boss,進(jìn)入下一關(guān)或者通關(guān)界面。圖 3-1 系統(tǒng)流程圖3.2 游戲流程示意圖圖 3-2 游戲流程圖3.3 游戲類框架以及類功能在游戲的設(shè)計(jì)中主要使用了以下四個(gè)類,分別是:1)實(shí)體類2)實(shí)體管理類3)界面類4)工具類類文件的具體解析如下:3.3.1 實(shí)體類-com.zjj.plane.enemy包表3-1 實(shí)體類Bossboss的實(shí)體類,定義了boss的圖片,boss的坐標(biāo)移動(dòng)方法等。BossBulletboss發(fā)射的
21、子彈類,定義了子彈的圖片,坐標(biāo)運(yùn)行的方法等。BossExplodeboss發(fā)射的子彈類,定義了子彈的圖片,坐標(biāo)運(yùn)行的方法等。BossWaringboss警告的實(shí)體類,定義了boss出現(xiàn)之前的警告動(dòng)畫的圖片,動(dòng)畫的坐標(biāo)等。Enemy敵機(jī)的實(shí)體類,定義了敵機(jī)的圖片,移動(dòng)方法,坐標(biāo),血量等信息。EnemyBullet敵機(jī)發(fā)射的子彈的實(shí)體類,定義了敵機(jī)的子彈的圖片,坐標(biāo),移動(dòng)方法等。Missile導(dǎo)彈的實(shí)體類,定義了導(dǎo)彈的圖片,坐標(biāo),移動(dòng)方法等。MyBullet我的飛機(jī)子彈的實(shí)體類,定義了我的飛機(jī)的子彈的圖片,坐標(biāo)等信息。MyPlane我的飛機(jī)的實(shí)體類,定義了我的飛機(jī)的圖片坐標(biāo),血量,等級(jí)等信息。Pl
22、aneExplode飛機(jī)的爆炸實(shí)體類,定義了我的飛機(jī)盒敵機(jī)爆炸的動(dòng)畫的圖片坐標(biāo)等信息。實(shí)體類的作用是表明游戲中各個(gè)具有屬性和方法的具體元素,他們屬性的改變和方法的運(yùn)行改變著游戲的顯示效果。它們充當(dāng)著MVC架構(gòu)中的model層。3.3.2 實(shí)體管理類-com.zjj.plane.manage包表3-2 實(shí)體管理類BackGroundManage游戲背景的管理類,控制游戲背景的圖片的滾動(dòng)等。BossBulletManageboss子彈的管理類用于控制子彈的發(fā)射以及子彈的存活狀態(tài)。BossExplodeManageboss爆炸的管理類,boss爆炸的動(dòng)畫的播放等。BossManageboss的管理類
23、,管理boss的出現(xiàn)及存活狀態(tài),繪畫出boss及其移動(dòng)。BossWaringManageboss警告的管理類,管理boss警告繪畫自己的方法等。CloudManage游戲中的云層管理類,該類較為簡(jiǎn)單,所以未設(shè)計(jì)云層的實(shí)體類,而直接寫它的管理類,定義了云層的圖片,運(yùn)動(dòng)方法及云層的繪畫自己的方法。EnemyBulletManage敵機(jī)子彈的管理類,該類提供了子彈的繪畫自己的方法,及獲得所有子彈的實(shí)體類的方法。EnemyManage敵機(jī)的管理類,該類提供了繪畫敵機(jī)的方法,及返回所有敵機(jī)實(shí)體的方法。MissileManage導(dǎo)彈的管理類,該類提供了導(dǎo)彈的繪畫自己的方法以及獲得一個(gè)導(dǎo)彈實(shí)體以及獲得所有導(dǎo)
24、彈實(shí)體的方法。MyBulletManage我的飛機(jī)的子彈的管理類,提供了子彈類的實(shí)例化方法以及繪畫自己的方法,也提供了返回一個(gè)子彈的實(shí)體類的方法以及返回所有子彈實(shí)體類的方法。MyPlaneManage我的飛機(jī)的管理類,提供了我的飛機(jī)類的實(shí)例化方法,以及我的飛機(jī)的移動(dòng)方法。PlaneExplodeManage飛機(jī)爆炸的管理類,提供了實(shí)例化所有爆炸的方法,及繪畫自己的方法,以及還有返回一個(gè)有效的爆炸實(shí)體類的方法。SuperBulletManage超級(jí)子彈的管理類,定義了超級(jí)子彈的所有屬性參數(shù)以及繪畫自己以及移動(dòng)的方法。實(shí)體管理類作為在游戲中管理各個(gè)實(shí)體集合的控制類,有些實(shí)體類在游戲的進(jìn)行中只會(huì)生成
25、少量的對(duì)象,為了簡(jiǎn)化代碼,這些實(shí)體,我直接給了他管理類,免去了實(shí)體類,實(shí)體管理類在MVC架構(gòu)中充當(dāng)著controller層。3.3.3 界面類-com.zjj.plane.view包表3-3 界面類GameActivity1游戲第一關(guān)的圖形界面類,定義了第一關(guān)的圖像界面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口,還有失敗的時(shí)候跳出的失敗窗口。GameView1游戲第一關(guān)界面的布局等參數(shù),界面中的所有參數(shù),游戲第一關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。GameActivity2游戲第二關(guān)的圖形界面類,定義了第二關(guān)的圖像界面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口,還有失敗的時(shí)候跳出的
26、失敗窗口。GameView2游戲第二關(guān)界面的布局等參數(shù),界面中的所有參數(shù),游戲第二關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。GameActivity3游戲第三關(guān)的圖形界面類,定義了第三關(guān)的圖像界面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口,還有失敗的時(shí)候跳出的失敗窗口。GameView3游戲第三關(guān)界面的布局等參數(shù),界面中的所有參數(shù),游戲第三關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。GameActivity4游戲第四關(guān)的圖形界面類,定義了第四關(guān)的圖像界面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口,還有失敗的時(shí)候跳出的失敗窗口。GameView4游戲第四關(guān)界面的布局等參數(shù),界面中的所有
27、參數(shù),游戲第四關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。GameActivity5游戲第五關(guān)的圖形界面類,定義了第五關(guān)的圖像界面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口,還有失敗的時(shí)候跳出的失敗窗口。GameView5游戲第五關(guān)界面的布局等參數(shù),界面中的所有參數(shù), 游戲第五關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。GameActivity6游戲第六關(guān)的圖形界面類,定義了第六關(guān)的圖像界 面中的所有元素。定義了成功時(shí)跳出的下一關(guān)窗口, 還有失敗的時(shí)候跳出的失敗窗口。GameView6游戲第六關(guān)界面的布局等參數(shù),界面中的所有參數(shù),游戲第六關(guān)中用到的所有的線程。我的飛機(jī)的控制移動(dòng)方法等。
28、IndexActivity游戲的菜單選擇界面,定義個(gè)按下各個(gè)按鈕的功能,初始化數(shù)據(jù)庫(kù)里的參數(shù)等。IndexView游戲菜單選擇界面,初始化屏幕的大小,初始化菜單學(xué)者界面的布局等。LevelSwitchActivity關(guān)卡選擇界面的定義類,定義了按下關(guān)卡選擇界面上的各個(gè)按鈕以及底部的返回主菜單的按鈕后的動(dòng)作等。LevelSwitchView關(guān)卡選擇界面布局類,定義了關(guān)卡選擇界面上各個(gè)元素的排列方式,開啟了一個(gè)不停重繪界面的線程等。RankActivity排行榜界面的定義類,定義了界面下方的返回主菜單按鈕的點(diǎn)擊后的操作。RankView排行榜界面的布局類,定義了排行榜界面如何布局,以及從數(shù)據(jù)庫(kù)中獲
29、得參數(shù)并在界面上顯示的方法。ShopActivity商店界面的定義類,定義了點(diǎn)擊商店界面上的各個(gè)購(gòu)買按鈕后的操作以及底部的返回主頁(yè)按鈕的操作。ShopView商店界面的布局文件,定義了界面中各個(gè)元素的圖片坐標(biāo)等參數(shù),以及開啟了一個(gè)重繪界面的線程。VideoActivity片頭動(dòng)畫的定義類,定義了游戲片頭動(dòng)畫的播放方式以及參數(shù),視頻的路徑等。WinActivity通關(guān)界面的定義類,定義了通關(guān)界面的參數(shù),以及界面底部的返回主菜單按鈕的操作等。WinView通關(guān)界面布局文件,定義了界面的布局,以及背景圖片、背景音樂(lè)等。界面類表示著在游戲中出現(xiàn)的各個(gè)界面,其中也定義了各個(gè)實(shí)體在游戲界面中的顯示方法。界
30、面類在MVC架構(gòu)中充當(dāng)著view層。3.3.4 工具類-com.zjj.plane.util包表3-4 工具類DButil連接數(shù)據(jù)庫(kù)的工具類,定義了連接數(shù)據(jù)庫(kù)的方法,以及游戲中需要用到的一些數(shù)據(jù)庫(kù)的操作等。RamCheck碰撞檢測(cè)的工具類,定義了兩個(gè)矩形是否碰撞到的方法。工具類表示著在游戲中一些公用方法的類,單獨(dú)提取出來(lái)便于代碼的復(fù)用。3.4 程序結(jié)構(gòu)3.4.1 程序的類文件 圖 3-3 程序類文件3.4.2 程序的圖片資源文件圖 3-4 程序圖片資源文件圖 3-5 程序圖片資源文件3.4.3 程序的音頻資源文件圖 3-6 程序音頻資源文如圖所示,本程序運(yùn)行在我的手機(jī)的android4.1.1
31、環(huán)境下圖 3-7 關(guān)于手機(jī)界面3.5 片頭動(dòng)畫實(shí)現(xiàn)3.5.1 設(shè)計(jì)方法和代碼歡迎動(dòng)畫界面有一個(gè)點(diǎn)擊檢測(cè)事件,點(diǎn)擊屏幕任意處跳過(guò)片頭動(dòng)畫進(jìn)入菜單選擇界面。圖 3-8 片頭動(dòng)畫以下為主要代碼:(具體作用已注釋)public class VideoActivity extends Activity implementsSurfaceHolder.Callback String path = /sdcard/plane/mv.mp4; /定義視頻在手機(jī)里的路徑SurfaceHolder surfaceHolder; /surface的抽象接口MediaPlayer mediaPlayer; /音頻,視
32、頻播放對(duì)象SurfaceView surfaceView; /surfaceView繪圖容器int i = 1;public void onCreate(Bundle savedInstanceState) requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); /實(shí)現(xiàn)全屏super.onCreate(savedInstanceState);
33、/調(diào)用父類的onCreate方法setContentView(R.layout.video); /調(diào)用XML的布局文件surfaceView = (SurfaceView) findViewById(R.id.surfaceView);/獲得xml文件里的surfaceView的對(duì)象surfaceHolder = surfaceView.getHolder();/SurfaceHolder接口來(lái)訪SurfacesurfaceHolder.addCallback(this);/添加回調(diào)mediaPlayer = new MediaPlayer();/實(shí)例化mediaPlayermediaPlay
34、er.setOnCompletionListener(new MediaPlayer.OnCompletionListener() Override public void onCompletion(MediaPlayer mediaPlayer) Intent intent = new Intent(VideoActivity.this, IndexActivity.class);/封裝跳轉(zhuǎn) startActivity(intent);/跳轉(zhuǎn) VideoActivity.this.finish();/結(jié)束當(dāng)前界面 );/檢測(cè)視頻播放完成Overridepublic boolean onTou
35、chEvent(MotionEvent event) if (event.getAction() = 1) Intent intent = new Intent(VideoActivity.this, IndexActivity.class);startActivity(intent);this.finish();return super.onTouchEvent(event);/觸摸事件private void playVideo(String strPath) / 自定義播放影片函數(shù)mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUS
36、IC);mediaPlayer.setDisplay(surfaceHolder);/ 設(shè)置Video影片以SurfaceHolder播放try mediaPlayer.setDataSource(strPath);/設(shè)置視頻路徑mediaPlayer.prepare();/視頻準(zhǔn)備緩沖 catch (Exception e) e.printStackTrace();if (!mediaPlayer.isPlaying() & i = 1) mediaPlayer.start();/視頻開始播放i+;public void surfaceCreated(SurfaceHolder arg0)
37、playVideo(path);/界面生成的時(shí)候開始播放.3.6 主菜單界面3.6.1 設(shè)計(jì)方法和代碼主菜單界面有一個(gè)動(dòng)態(tài)的飛機(jī)效果,下方有四個(gè)按鈕,分別為,開始游戲,聲音開關(guān)(當(dāng)前為開啟,則顯示關(guān)閉聲音,反之則相反),排行榜按鈕,道具商店。以下為主要代碼:(具體作用已注釋)public class IndexActivity extends Activity public static boolean voice = true; /聲音開啟public static int money; /總金錢數(shù)public static int supernum; /超級(jí)子彈的數(shù)量public stat
38、ic int planelevel; /飛機(jī)等級(jí)public static int bulletlevel; /子彈等級(jí)public static int level = 1; /關(guān)卡等級(jí)public static int maxlevel = 1; /已通過(guò)最大關(guān)卡數(shù)public static int btnpressed_soundid; /按鈕按下的提示音public static SoundPool mSoundPool; /聲音的poolpublic static Vibrator vibrator; /振動(dòng)器public static int score = 0; /總積分初始為0private IndexView indexView;private int i = 1, x = 0, y = 0;public DButil dbUtil = null; /實(shí)例化數(shù)據(jù)庫(kù)連接對(duì)象圖 3-9 主菜單Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);dbUtil = new DButil(this);Cursor c
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025海南建筑安全員考試題庫(kù)
- 2025年青海省安全員-A證考試題庫(kù)及答案
- 丙類功率放大器電路組成和工作原理分析
- 《急慢性扁桃體炎》課件
- 三角形面積公式
- 《藥品招商流程》課件
- 《惡性淋巴瘤的化療》課件
- 城市內(nèi)澇課件()
- 單位人力資源管理制度集錦大合集十篇
- 單位管理制度展示合集【人力資源管理】十篇
- 2024年時(shí)事政治試題【有答案】
- 2024年信息系統(tǒng)項(xiàng)目管理師(綜合知識(shí)、案例分析、論文)合卷軟件資格考試(高級(jí))試題與參考答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí)
- MT 285-1992縫管錨桿
- GB 18613-2020 電動(dòng)機(jī)能效限定值及能效等級(jí)
- 旅游專業(yè)旅游概論試題有答案
- 3、起重工、焊工、電工安全技術(shù)交底
- 水稻幼穗分化八個(gè)時(shí)期的劃分表
- 卡特彼勒生產(chǎn)體系手冊(cè)(PDF62頁(yè))
- 消防工程物業(yè)移交書
- 支部委員候選人表
評(píng)論
0/150
提交評(píng)論