基于安卓的手機游戲開發(fā)畢業(yè)論文_第1頁
已閱讀1頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  學士學位論文</b></p><p>  基于Android平臺的“跳吧”游戲的設計與實現(xiàn)</p><p><b>  設計人: </b></p><p><b>  指導教師:</b></p><p><b>  所屬系部</b

2、></p><p><b>  專業(yè)班級</b></p><p>  2014 年 6月 7 日</p><p>  畢業(yè)設計(論文)任務書</p><p>  學院: 計算機科學與技術學院 </p><p><b>  摘 要</b><

3、;/p><p>  隨著手機行業(yè)的發(fā)展,手機游戲以更簡潔方便的形式深入人們的日常生活,成為人們在任何非工作場合的娛樂方式?!疤伞笔莻€老幼皆宜的小游戲,不僅能夠讓玩家放松心情、減輕壓力,同時也能鍛煉玩家眼力與手部靈活性。</p><p>  本系統(tǒng)是基于Android操作系統(tǒng)開發(fā)的,利用Eclipse3.5環(huán)境和JAVA語言實現(xiàn)的。經(jīng)過可行性研究,需求分析,總體設計,詳細設計,編碼實現(xiàn)和測試,

4、從而實現(xiàn)了本系統(tǒng)的設計。本文對每一個開發(fā)環(huán)節(jié)進行了詳細分析和和闡述。本系統(tǒng)實現(xiàn)的功能有主角移動功能、隨機產(chǎn)生不同踏板和加分物品功能、血條功能、重力感應功能等。</p><p>  本系統(tǒng)在Android SDK虛擬機和安卓真機ZTEU930HD下測試通過,界面友好,使用方便。</p><p>  關鍵詞 游戲設計;Android;Java</p><p>  The

5、 Design and Implementation of Jumping Game Base On Android Platform </p><p>  Author:Cao Jianqiang Tutor:Liu Aiqin</p><p><b>  Abstract</b></p><p>  With the developme

6、nt of the mobile phone industry, mobile games have more simple and convenient form in-depth people's daily lives, as people in any non-work occasions of entertainment. "Jumping game " is a small game for al

7、l ages, not only allows players to relax and reduce stress, but also to exercise player’s eyes and flexibility of player’s hand. </p><p>  The system is based on the Android operating system developed, using

8、 Eclipse3.5 environment and JAVA language. After a feasibility study, requirements analysis, design, detailed design, coding and testing to achieve the design of the system.this paper have detailed analysis and elaborati

9、on for the each link of development . The system function can be achieved protagonist mobile features, randomly generated different footboard and processing of Bonus items function, blood of the function, gravity</p&g

10、t;<p>  This system has been tested under the Android SDK virtual machine and real machine ZTEU930HD ,friendly interface and easy to use. </p><p>  Keywords game design; Android; Java</p><

11、p><b>  目 錄</b></p><p>  第一章 系統(tǒng)概述1</p><p>  1.1 游戲開發(fā)背景及意義1</p><p>  1.1.1 開發(fā)背景1</p><p>  1.1.2 開發(fā)意義1</p><p>  1.2 開發(fā)平臺介紹2</p>

12、<p>  1.2.1 Eclipse2</p><p>  1.2.2 ADT2</p><p>  1.2.3 JDK2</p><p>  1.3 Android操作系統(tǒng)結構2</p><p>  1.3.1 Android操作系統(tǒng)介紹2</p><p>  1.3.2 Android操作

13、系統(tǒng)的優(yōu)點3</p><p>  1.3.3 Android系統(tǒng)結構3</p><p>  1.3.4 Android應用程序組成部分4</p><p>  第二章 可行性分析6</p><p><b>  2.1編寫目的6</b></p><p>  2.2 可行性研究任務6&l

14、t;/p><p>  2.2.1技術可行性6</p><p>  2.2.2經(jīng)濟可行性7</p><p>  2.2.3操作可行性7</p><p>  2.3 可行性研究結論7</p><p>  第三章 需求分析8</p><p>  3.1需求分析的意義8</p>&

15、lt;p>  3.2游戲功能需求8</p><p>  3.3可靠性和可用性需求8</p><p><b>  3.4 用例圖9</b></p><p>  第四章 總體設計10</p><p>  4.1 總體設計的目標和意義10</p><p>  4.2 功能模塊的劃分10

16、</p><p>  4.3 時序圖11</p><p>  第五章 詳細設計12</p><p>  5.1詳細設計的目的和意義12</p><p>  5.2總程序流程圖12</p><p>  5.3 隨機產(chǎn)生踏板14</p><p>  5.4 血條參數(shù)的設置15</p

17、><p>  5.5 加分物品的生成15</p><p>  5.6 主角連續(xù)動作的生成16</p><p>  5.7 主角與踏板關系的判斷16</p><p>  5.8 主角與加分物品關系的判斷16</p><p>  第六章 開發(fā)平臺的搭建17</p><p>  6.1 JAVA

18、虛擬機的安裝17</p><p>  6.1.1JDK的安裝17</p><p>  6.1.2 Java環(huán)境變量配置18</p><p>  6.2 Eclipse的安裝18</p><p>  6.2.1 安裝SDK18</p><p>  6.2.2 Eclipse的安裝19</p>&

19、lt;p>  第七章 編碼實現(xiàn)21</p><p>  7.1 編碼的目的21</p><p>  7.2 游戲截圖21</p><p>  7.3 游戲功能的實現(xiàn)22</p><p>  7.3.1主角動作的實現(xiàn)22</p><p>  7.3.2隨機產(chǎn)生踏板23</p><p&

20、gt;  7.3.3下一個踏板的生成25</p><p>  7.3.4隨機生成加分物品25</p><p>  7.3.5處理主角和踏板的關系26</p><p>  7.3.6判斷主角與加分物品的關系28</p><p>  7.3.7重力感應系統(tǒng)29</p><p>  7.3.8游戲難度的提升29&

21、lt;/p><p>  7.3.9 設置實現(xiàn)29</p><p>  第八章 系統(tǒng)測試31</p><p>  8.1 測試的目的及意義31</p><p>  8.2測試步驟32</p><p>  8.2.1 模擬器測試32</p><p>  8.2.2 真機測試34</

22、p><p>  8.3 測試結果分析35</p><p><b>  結束語37</b></p><p><b>  致 謝38</b></p><p><b>  參考文獻39</b></p><p>  附錄 外文翻譯40</p>

23、<p><b>  系統(tǒng)概述</b></p><p>  1.1 游戲開發(fā)背景及意義</p><p>  1.1.1 開發(fā)背景</p><p>  手機游戲的出現(xiàn)是為了娛樂心神,并隨著移動終端和移動通信網(wǎng)絡的不斷進步,手機游戲也正在經(jīng)歷由簡單到復雜的進化過程。從全球來看,移動終端的娛樂服務被認為是帶動移動數(shù)據(jù)業(yè)務快速發(fā)展的重要力量。

24、作為手機娛樂服務的重要內容之一,近年來,伴隨著移動網(wǎng)絡和移動終端性能的不斷提高與完善,尤其是智能手機的出現(xiàn),手機游戲業(yè)務呈現(xiàn)快速增長趨勢。</p><p>  近幾年來,手機游戲快速發(fā)展的同時按內容可分為:角色扮演類、冒險類、格斗類、體育競技類、電影改版類、棋牌類、益智類、模擬類。手機游戲種類已成為人類線上娛樂生活的不可缺少的最主流的載體而存在,各類智能手機伴隨著PC網(wǎng)絡游戲為基礎、3網(wǎng)絡的不斷變化為措施的條件下

25、大力迅猛發(fā)展手機網(wǎng)絡游戲。雖然手機游戲的用戶越來越多,豐富多彩的游戲種類給玩家?guī)砹烁嗟倪x擇,但是我國的手機游戲行業(yè)的發(fā)展現(xiàn)狀并不樂觀,主要因素有:(1)高質量游戲軟件開發(fā)公司和人才的貧乏,導致無優(yōu)秀游戲打入市場。(2)游戲創(chuàng)意的匱乏。大多游戲都只是一味的跟風,看到某個游戲成功贏得市場,便改換場景風格,人物造型、故事背景等,其游戲核心一沉不變的思維理念會使得玩家產(chǎn)生審美疲勞。</p><p>  隨著Andro

26、id游戲的商業(yè)模式越來越凸顯,人們對移動終端的休閑娛樂功能需求越來越大,移動終端上的游戲已成為成為現(xiàn)代人們娛樂生活中不可或缺的。游戲應用服務市場促使手機平臺的不斷提升而日新月異。在未來的游戲產(chǎn)品能否脫穎而出,一切取決于你能玩出什么花樣來,這將激發(fā)更多的開發(fā)商和制作人員攻堅克難創(chuàng)作出高質量的作品,而面對手機游戲自身的趣味性、易掌握性、可中斷性、交互性、游戲商家也將面臨亙古未見得激烈競爭。由此可見,手機已是人們日常生活中密不或缺的休閑娛樂方

27、式。</p><p>  1.1.2 開發(fā)意義</p><p>  在人們的生活中,大多數(shù)人都已離不開手機,而大多數(shù)手機用戶選擇智能手機,開發(fā)Android游戲旨在為人們日常生活添加更多的娛樂方式,此次設計出一個能夠在任何環(huán)境任何時間放松心情娛樂心身的單機游戲,通過簡單易操作的Android游戲幫助手機用戶打發(fā)閑暇時間、娛樂心身、放松心情。</p><p>  1

28、.2 開發(fā)平臺介紹</p><p>  “跳吧”游戲開發(fā)平臺為Eclipse4.3.2 + ADT22.6.2 + JDK1.7.0_51,模擬測試平臺為Android SDK模擬器,真機測試平臺為ZTEU930HD。</p><p>  1.2.1 Eclipse</p><p>  Eclipse是不僅僅是成為專門開發(fā)JAVA程序的IDE環(huán)境,根據(jù)Eclipse

29、的體系結構,通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。Eclipse是一個開放源代碼的項目,任何人都可以下載 Eclipse 的源代碼,并且在此基礎上開發(fā)自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的C++,JAVA,Python等語言的開發(fā)插件出現(xiàn)。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能??梢詿o限擴展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是 Eclipse的潛力所在。在

30、本項目中,Eclipse正是通過第三方插件—ADT實現(xiàn)了開發(fā) Android 應用。</p><p>  1.2.2 ADT </p><p>  ADT是英文 Android Development Tools 的簡稱,即Android開發(fā)工具包。</p><p>  ADT是Eclipse中構建Android應用程序IDE插件,ADT擴展了Eclipse的功能,

31、讓開發(fā)人員快速建立新的Android項目、創(chuàng)建應用程序的用戶界面。ADT可以幫助Eclipse找到Android sdk,再加上Android框架的API組件調試使用Android SDK工具,以便APK分發(fā)給應用程序。 ADT大大減輕Android應用程序的開發(fā)工作量,工具集成XML編輯器,將給開發(fā)人員一個令人難以置信的開發(fā)Android應用環(huán)境。使用ADT之前,必須確認已經(jīng)安裝了Eclipse以及同Eclipse IDE兼容版本的A

32、ndroid SDK。</p><p><b>  1.2.3 JDK</b></p><p>  JDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包(SDK)。有SE、EE、ME三個版本。</p><p>  沒有JDK的話,無法編譯Java程序,如果想只運行Java程序,要確保已安裝相應的JRE。<

33、/p><p>  1.3 Android操作系統(tǒng)結構</p><p>  1.3.1 Android操作系統(tǒng)介紹</p><p>  Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要在移動設備上工作,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。隨后Google

34、以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android智能手機發(fā)布于2008年10月。Android逐漸擴展到平板電腦及其他領域上。</p><p>  1.3.2 Android操作系統(tǒng)的優(yōu)點</p><p>  作為一個手機平臺,Android 在技術上的優(yōu)勢主要有以下幾點: </p><p>  (1)全開放智能手機平臺 &l

35、t;/p><p> ?。?)多硬件平臺的支持 </p><p>  (3)使用眾多的標準化技術 </p><p> ?。?)核心技術完整,統(tǒng)一 </p><p>  (5)完善的 SDK 和文檔 </p><p> ?。?)完善的輔助開發(fā)工具 </p><p>  Android 的開發(fā)者可以在完備

36、的開發(fā)環(huán)境中進行開發(fā),Android 的官方網(wǎng)站也提供了豐富的文檔、資料。這樣有利于 Android 系統(tǒng)的開發(fā)和運行在一個良好的生態(tài)環(huán)境中。 </p><p>  1.3.3 Android系統(tǒng)結構</p><p>  Android的系統(tǒng)結構如下圖1.1所示:</p><p>  圖 1.1 Android系統(tǒng)結構</p><p>  

37、Android 的第 1 層次由 C 語言實現(xiàn),第 2 層次由 C 和/C++實現(xiàn),第 3、4 層次主要由 Java 代碼實現(xiàn)。第 1 層次和第 2 層次之間,從 Linux 操作系統(tǒng)的角度來來看,是內核空間與用戶空間的分界線,第 1 層次運行于內核空間,第 2、3、4 層次運行于用戶空間。 第 2 層次和第 3 層次之間,是本地代碼層和 Java 代碼層的接口。第 3 層次和第 4 層次之間,是 Android 的系統(tǒng) API 的接口

38、,對于 Android 應用程序的開發(fā),第 3 層次以下的內容是不可見的,僅考慮系統(tǒng) API 即可。由于 Android 系統(tǒng)需要支持 Java 代碼的運行,這部分內容是 Android 的運行環(huán)境(Runtime),由虛擬機和Java 基本類組成。對于 Android 應用程序的開發(fā),主要關注第 3 層次和第 4 層次之間的接口。</p><p>  1.3.4 Android應用程序組成部分 </p&

39、gt;<p>  一般情況下,Android 應用程序由以下 4 種組件構成: </p><p>  ? 活動(Activity)、廣播接收器(BroadcastReceiver)、服務(Service)、內容提供者(Content Provider)。 </p><p>  活動是最基本的 Android 應用程序組件,在應用程序中,一個活動通常就是一個單獨的用戶界面。每

40、一個活動都被實現(xiàn)為一個獨立的類,并且從活動(Activity)基類中繼承而來,活動類將會顯示由視圖(View)控件組成的用戶接口,并對事件(Event)做出響應。大多數(shù)的應用程序都會有多個用戶界面,因此便會有多個相應的活動。Android 的一個活動一般對應界面中的一個屏幕顯示,可以理解成一個界面,每一個活動在界面上可以包含按鈕、文本框等多種可視的 UI 元素。</p><p>  Android 系統(tǒng)中的不同組

41、件具有不同的生命周期。Android 根據(jù)每個進程中運行的組件以及組件的狀態(tài)把進程放入一個重要性分級(importance hierarchy)中。Android 進程的重要性分級,可以理解成執(zhí)行的優(yōu)先級?;顒拥纳芷谌鐖D 1.2 所示。 </p><p>  運行活動的情景:當一個活動被啟動時,活動中的 onCreate()、onStart()和 onResume()這 3 個方法被依次調用,活動對應的界面

42、出現(xiàn)在屏幕上。 </p><p>  ? 活動被“覆蓋”的情景:Android 的活動一般都占據(jù)一個完整的屏幕,從當前活動啟動另外一個活動時,另一個活動將被啟動到前臺(Foreground),當前活動轉入后臺(Background),這時活動的 onPasuse()方法將被調用,活動轉入后臺運行。如果活動變?yōu)椴豢梢?,還將調用 onStop()方法。在轉入后臺onStop()是否被調用取決于活動是否被完全覆蓋,在

43、新的活動有透明部分時,轉入后臺的活動依然“可見”,其他情況下(較多數(shù)的情況)活動均進入不可見狀態(tài)(被完全覆蓋)。 </p><p>  ? 活動被恢復的情景:當界面上最前面的活動退出后,它所覆蓋的活動將被恢復,這時 onResume()方法將被調用,活動重新轉入前臺運行。 </p><p>  ? 活動完全退出的情景:當使用回退(Back)按鈕退出活動時,onDestroy()方法將被

44、調用,活動關閉。如果系統(tǒng)缺少內存時,也會殺死(kill)后臺的活動,其中優(yōu)先殺死不可見的活動,可見的活動一般不會被殺死。</p><p>  圖 1.2 活動的生命周期</p><p><b>  可行性分析</b></p><p><b>  2.1編寫目的</b></p><p>  可行性研

45、究的目的是目標系統(tǒng)是否值得去開發(fā),怎樣才能達到這個目的。</p><p>  一個項目的開發(fā)需要仔細分析,看它在目前的情況下是否可行,如果一個項目開發(fā)它具有很好的背景和意義,但是在經(jīng)濟上或者是技術上是不可行的,那么它也只能稱之為不能實現(xiàn)的項目。</p><p>  2.2 可行性研究任務</p><p>  2.2.1技術可行性 </p><p&

46、gt;  確保現(xiàn)有的技術是否能解決本該開發(fā)項目:系統(tǒng)采用JAVA語言開發(fā),Eclipse作為Android開發(fā)環(huán)境。ADT插件提供了一系列圖形用戶界面組件進行界面編程,所以在技術上可行。Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司推出的Java程序設計語言和Java平臺的總稱。Java自面世后就非常流行,發(fā)展迅速,對C++語言形成了有力沖擊。Java 技術具有卓越的通用性、高效性

47、、平臺移植性和安全性,廣泛應用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。</p><p>  Java是目前使用最為廣泛的網(wǎng)絡編程語言之一。它具有簡單,面向對象,穩(wěn)定,與平臺無關,解釋型,多線程,動態(tài)等特點。Java語言有以下幾點優(yōu)點:</p><p>  

48、面向對象的編程更符合人的思維模式,使人們更容易編寫程序。</p><p>  內置對多線程的支持。</p><p>  Java程序的安全性。當你準備從網(wǎng)絡上下載一個程序時,你最大的擔心是程序中含有惡意的代碼,比如試圖讀取或刪除本地機上的一些重要文件,甚至該程序是一個病毒程序等。當你使用支持Java的瀏覽器時,你可以放心地運行Java的小應用程序 Java Applet ,不必擔心病毒的感

49、染和惡意的企圖,Java小應用程序將限制在 Java運行環(huán)境中,不允許它訪問計算機的其它部分。</p><p>  Java 程序的基本組成單元就是類,有些類是自己編寫的,有一些是從類庫中引入的,而類又是運行時動態(tài)裝載的,這就使得 Java 可以在分布環(huán)境中動態(tài)地維護程序及類庫,而不像 C++那樣,每當其類庫升級之后,相應的程序都必須重新修改,編譯。</p><p>  因此我覺得Java

50、程序語言該技術已成熟,采用JAVA編程語言是可行的。</p><p>  2.2.2經(jīng)濟可行性</p><p>  由于“跳吧”游戲作為畢業(yè)設計進行開發(fā),有本人親自開發(fā),成本不會太高,所以經(jīng)濟上是可行的。 </p><p>  2.2.3操作可行性</p><p>  確定軟件產(chǎn)品是否能夠被最終的用戶所接受,用戶是否能操作最終的產(chǎn)品:該游戲在

51、方便易操作的Android手機上運行,方便于玩家操作。</p><p>  2.3 可行性研究結論</p><p>  根據(jù)以上幾個方面的研究,在技術上、經(jīng)濟上和操作上都是可行的,本項目可進行開發(fā)。</p><p><b>  需求分析</b></p><p>  3.1需求分析的意義</p><p&

52、gt;  為了開發(fā)出真正的滿足用戶需求的軟件產(chǎn)品,首先必須知道用戶的需求。為軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提條件,不論人們把設計和編碼工作做得如何出色,不能真正的滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱。</p><p>  需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題。</p><p><b>  3.2游戲功

53、能需求</b></p><p>  游戲能夠實現(xiàn)讓玩家在游戲中放松心神、減輕壓力的作用,同時要求游戲中的精靈不斷變換,鍛煉玩家眼力與手部靈活性的功能。</p><p>  要求“跳吧”游戲能實現(xiàn)以下功能:</p><p>  主角移動功能。主角移動功能就是玩家利用手機重力感應系統(tǒng)對其進行左右移動操作。</p><p>  產(chǎn)生踏板

54、功能。系統(tǒng)可以隨機產(chǎn)生不同類型的踏板,這些踏板分為:穩(wěn)定踏板、帶刺踏板、左/右移動踏板、彈簧踏板、不穩(wěn)定踏板,并且這些踏板能夠以一定的速度向屏幕頂部移動;同時,帶刺踏板可以對主角造成一定的傷害,左/右移動踏板可以將主角向左/右移動,彈簧踏板會將主角向上彈起,不穩(wěn)定踏板會在主角站在上面時破碎,穩(wěn)定踏板不產(chǎn)生任何效果。</p><p>  產(chǎn)生加分物品。系統(tǒng)會隨機產(chǎn)生不同類型的加分物品,物品分值隨物品類別不同而不同,

55、且物品要停留一定時間再消失。</p><p>  設置功能。能夠對游戲進行一些簡單的設置,這些設置包括音效設置、震動設置、主角移動速度設置、輸入玩家名稱。</p><p>  血條功能。主角在踩到帶刺踏板時,血條減少一定的值,當主角掉到屏幕下方時血條值歸零。</p><p>  排行榜功能。游戲可以跟據(jù)玩家的游戲得分按由高到低順序進行排名次。</p>

56、<p>  3.3可靠性和可用性需求</p><p>  在游戲開發(fā)階段要求在windows 7操作系統(tǒng)、JAVA編程語言、Eclipse平臺下開發(fā),在Android SDK虛擬機和ZTEU930HD真機下測試運行。</p><p>  要求游戲能夠在Android 4.0.0及其以上版本、RAM為512MB的安卓手機上穩(wěn)定流暢運行,并要求游戲在運行過程中不能影響手機正常通信功能

57、及用戶手機上的其他應用功能。</p><p><b>  3.4 用例圖</b></p><p>  在該游戲中玩家可操作游戲的功能有:通過重力感應對游戲主角進行左右移動、輸入玩家名稱、點擊返回按鈕、點擊重新開始按鈕、點擊退出按鈕、點擊開始按鈕、點擊排行榜按鈕、設置音效(開/關)、設置主角移動速度、設置震動效果。游戲用例圖如圖3.3 。</p><

58、p><b>  圖 3.3 用例圖</b></p><p><b>  總體設計</b></p><p>  4.1 總體設計的目標和意義</p><p>  經(jīng)過前面的需求分析,已經(jīng)確定了系統(tǒng)要做什么,總體設計的目的是為了實現(xiàn)現(xiàn)在怎么做。總體設計的意義是為了更好地設計游戲讓后續(xù)的工作更好地高質量工作。</p&

59、gt;<p>  4.2 功能模塊的劃分</p><p>  該游戲有人物模塊、踏板模塊、設置模塊、加分物品模塊、血條模塊、排行榜模塊,其中在設置模塊下包含有音效設置、震動效果設置、人物移動速度模塊、輸入玩家名稱模塊,其模塊劃分如下圖4.1。</p><p>  圖 4.1 功能模塊圖</p><p>  在主角移動模塊中要實現(xiàn)主角移動動作時顯示連續(xù)的

60、效果;踏板模塊是系統(tǒng)隨機產(chǎn)生的,含有不同類型的踏板;在設置模塊當中玩家可以根據(jù)自己的喜好進行音效設置(包含音效的開和關)、震動效果設置、輸入玩家名稱和主角移動速度的設置;在加分物品模塊當中,系統(tǒng)會隨機產(chǎn)生8中不同類型的加分物品,當主角撿到加分物品時游戲成績增加,血條模塊當中,每當主角受到傷害時血條值將會減少一定的值;排行榜模塊是為了更好地顯示玩家排名。 </p><p><b>  4.3 時序圖&

61、lt;/b></p><p>  游戲大概操作流程為玩家點擊游戲圖標進入游戲主界面,然后點擊開始游戲進行操作,等游戲結束后玩家在彈出的窗口輸入玩家名稱,然后點擊結束按鈕退出游戲,游戲時序圖如圖4.2 。</p><p><b>  圖4.2 時序圖</b></p><p><b>  詳細設計</b></p&g

62、t;<p>  5.1詳細設計的目的和意義</p><p>  詳細設計的目的是為了能夠確定具體地實現(xiàn)所要求的系統(tǒng),經(jīng)過前面的分析和設計,現(xiàn)應該對目標系統(tǒng)得出詳細的描述,并設計出詳細的方案,以便讓程序員能夠寫出更為高質量的程序代碼。</p><p><b>  5.2總程序流程圖</b></p><p>  系統(tǒng)總程序流程圖如圖5

63、.1所示。</p><p>  圖 5.1 系統(tǒng)總流程圖</p><p>  系統(tǒng)開始時先進行判斷是否為開始游戲、是否設置游戲參數(shù)、是否查看排名、是否退出游戲,然后系統(tǒng)根據(jù)選擇進行相應的操作,如果選擇是開始游戲則做出開始游戲的動作直到游戲結束并輸入玩家名稱,點擊返回按鈕;若選擇為設置游戲則對游戲的各項參數(shù)進行設置,然后點擊返回按鈕;加入選擇排名則系統(tǒng)顯示玩家成績與排名,然后點擊返回按鈕。&

64、lt;/p><p>  圖 5.2 游戲流程圖</p><p>  游戲流程圖如圖5.2所示,當點擊開始游戲時,系統(tǒng)判斷玩家接觸到的踏板類型,然后根據(jù)踏板的類型做出不同的效果,當玩家左右移動時碰到不穩(wěn)定踏板時,踏板破碎;當為彈簧踏板時玩家被彈起;當為左右移動踏板時,玩家隨踏板左右移動;當為帶刺踏板時,玩家血條將會減少一定的值;當玩家血條為零或者玩家直接調到屏幕下面則游戲結束。</p>

65、;<p>  圖 5.3 游戲設置流程圖</p><p>  當選擇游戲設置時,玩家可以對游戲參數(shù)進行設置,其設置流程圖如圖5.3所示。</p><p>  當選擇設置音效時,在游戲設置界面,設置音效的開/關。當選擇為設置人物移動速度時,在游戲設置界面通過左右滑動調節(jié)線條來調節(jié)游戲角色的移動速度,當選擇為錄入玩家的名稱時在設置界面文本框內輸入玩家的名稱,然后點擊退出按鈕進行保

66、存設置并退出到游戲主界面,或者當點擊設置界面的返回按鈕時返回游戲主界面。</p><p>  5.3 隨機產(chǎn)生踏板</p><p>  系統(tǒng)隨機產(chǎn)生0到19數(shù)字,當隨機數(shù)在0-2之間時游戲生成不穩(wěn)定踏板,隨機數(shù)在3-5之間時游戲生成彈簧踏板,隨機數(shù)在6-11之間時游戲生成帶刺踏板,當隨機數(shù)在12-13之間時游戲生成左移動踏板,當隨機數(shù)在14-15之間時游戲生成右移動踏板,當隨機數(shù)在16-1

67、9之間時游戲生成穩(wěn)定踏板。其踏板產(chǎn)生機制如圖5.4所示。</p><p>  圖 5.4 踏板的產(chǎn)生</p><p>  5.4 血條參數(shù)的設置</p><p>  為了游戲更加吸引玩家,同時考慮到游戲的難易程度,玩家在游戲中的心理作用,現(xiàn)將游戲的血條總參數(shù)設置為18,也就是說游戲主角的總生命值為18,當游戲主角每次收到傷害時,血條值減少3,也就是說每當玩家受到一次

68、傷害時,游戲主角的生命值減少3,這樣當玩家受到傷害6次游戲將結束,或者當玩家直接掉到屏幕下面時游戲主角的生命值為0,游戲結束。</p><p>  5.5 加分物品的生成</p><p>  為了游戲的有趣性,更好的讓玩家放松,在游戲中得到更大的樂趣,設置加分機制,在游戲中將隨機產(chǎn)生香蕉、蛋糕、西紅柿、桃子、草莓、山果、梨子、面包。每個加分物品的分值如下:</p><p

69、>  面包 ——1 桃子 ——5</p><p>  山果 ——4 草莓 ——6 </p><p>  西紅柿——10 梨 ——12 </p><p>  香蕉 ——15 蛋糕 ——20</p><p>  加

70、分物品隨機產(chǎn)生參數(shù)的設置,系統(tǒng)隨機產(chǎn)生23個數(shù),當隨機數(shù)為0時游戲生成面包,當隨機數(shù)為1時游戲生成蛋糕,隨機數(shù)在2-4之間時游戲生成香蕉,隨機數(shù)在5-7之間時游戲生成梨,當隨機數(shù)在8-10之間時游戲生成西紅柿,當隨機數(shù)在11-13之間時游戲生成桃,當隨機數(shù)在14-17之間時游戲生成草莓,當隨機數(shù)在18-21之間時游戲生成山果。 </p><p>  5.6 主角連續(xù)動作的生成</p><

71、p>  首先利用if語句判斷主角的狀態(tài)是出于何種狀態(tài),,然后根據(jù)所處的狀態(tài)將首張圖片賦給主角判斷形狀的變量,然后在判斷主角形狀變量與下一張的關系,然后再將下一張圖片賦給主角形狀變量直到最后一張,最后通過循環(huán)語句和系統(tǒng)定時器來控制動作的發(fā)生和結束。</p><p>  5.7 主角與踏板關系的判定</p><p>  當系統(tǒng)隨機生成六中不同類型的踏板時,如何判斷主角與踏板發(fā)生碰撞呢?下

72、面是解決主角與踏板關系的實現(xiàn)方法。</p><p>  給主角定義一個主角狀態(tài)變量、同時定義踏板類型變量。首先判斷主角與踏板碰撞效果,利用if語句判斷主句坐標與踏板坐標的關系,具體如下:</p><p>  當主角最大Y軸值大于等于踏板Y軸最小值,同時主角Y軸最大值小于踏板Y軸最大值,同時主角最大X值大于踏板X軸最小值,并且主角X軸最小值小于踏板X軸最大值時為主角和踏板發(fā)生了碰撞。<

73、/p><p>  然后再通過主角狀態(tài)變量與踏板類型變量的關系來判斷主角與何種踏板發(fā)生碰撞并作出相應的效果。</p><p>  5.8 主角與加分物品關系的判定</p><p>  判斷主角與加分物品的關系和判斷主角與踏板關系的方法基本相似,都是通過坐標進行判斷,當主角最大Y軸值大于等于加分物品Y軸最小值,同時主角Y軸最大值小于加分物品Y軸最大值,同時主角最大X值大于加

74、分物品X軸最小值,并且主角X軸最小值小于加分物品X軸最大值時為主角和加分物品發(fā)生了碰撞。</p><p><b>  開發(fā)平臺的搭建</b></p><p>  6.1 JAVA虛擬機的安裝</p><p>  6.1.1JDK的安裝</p><p>  下載jdk1.7.0_51軟件,打開軟件進行安裝,如圖6.1、6.

75、2。</p><p>  圖 6.1 JDK的安裝</p><p>  圖 6.2 JDK完成安裝</p><p>  6.1.2 Java環(huán)境變量配置</p><p>  1.打開我的電腦--屬性--高級--環(huán)境變量 ,如圖6.3。</p><p>  圖6.3 配置Java環(huán)境變量</p><p

76、>  2.新建系統(tǒng)變量JAVA_HOME 和CLASSPATH </p><p>  變量名:JAVA_HOME </p><p>  變量值:C:\Program Files\Java\jdk1.7.0</p><p>  變量名:CLASSPATH </p><p>  變量值:.;%JAVA_HOME%\lib\dt.jar;%J

77、AVA_HOME%\lib\tools.jar;</p><p>  3. 選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量,雙擊該變量,把JDK安裝路徑中bin目錄的絕對路徑,添加到Path變量的值中,并使用半角的分號和已有的路徑進行分隔。 </p><p><b>  變量名:Path </b></p><p>  變量值:%JAVA_HO

78、ME%\bin;%JAVA_HOME%\jre\bin;</p><p>  6.2 Eclipse的安裝</p><p>  下載Eclipse4.3.2 、 ADT22.6.2 、Android SDK。</p><p>  6.2.1 安裝SDK</p><p>  點擊Android SDK進行安裝,如圖6.4。</p>

79、<p>  圖 6.4 安裝SDK</p><p>  完成安裝后,打開SDK下載相應的Android操作系統(tǒng)版本,如圖6.5。</p><p>  圖 6.5 安裝Android操作系統(tǒng)</p><p>  6.2.2 Eclipse的安裝</p><p>  1、點擊Eclipse安裝軟件,根據(jù)提示進行安裝,安裝完成后,點擊h

80、elp-->install new software,然后點擊add,在彈出的窗口中點擊archive選擇ADT所在路徑,并在name除填入ADT名稱,然后點擊OK,根據(jù)提示進行安裝ADT插件,如圖 4.6。</p><p>  圖 6.6安裝ADT插件</p><p>  點擊Window->preference,點擊Android選擇Browse選擇sdk所在路徑,點擊ap

81、ply然后點擊OK,如圖6.7。</p><p>  圖 6.7 添加SDK路徑</p><p><b>  編碼實現(xiàn)</b></p><p><b>  7.1 編碼的目的</b></p><p>  通過編碼把軟件設計結果翻譯成Java語言的程序,同時也是對設計的進一步具體化,也是對所學知識的一

82、個具體體現(xiàn)。</p><p><b>  7.2 游戲截圖</b></p><p>  游戲截圖如下圖7.1,圖7.2,圖7.3,圖7.4。</p><p>  圖7.1 游戲主界面 圖 7.2 開始游戲界面</p><p>  圖 7.3 設置界面

83、 圖 7.4 游戲結束界面</p><p>  7.3 游戲功能的實現(xiàn)</p><p>  7.3.1主角動作的實現(xiàn)</p><p>  主角每完成一個完整的動作是由好多個分解動作組成,比如主角向左移動時,是由好幾個向左走動的單個動作構成,那么判斷主角移動狀態(tài)并形成連續(xù)的動作的算法如下: </p><p>  public int ge

84、tRoleSharp() {</p><p>  if (mRoleStatus == UIModel.ROLE_STATUS_ON_FOOTBOARD) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_STANDING;</p><p>  return mRoleSharp;</p><p><

85、;b>  }</b></p><p>  mFrameCounter++;</p><p>  if (mFrameCounter == mFrameDelay) {</p><p>  mFrameCounter = 0;</p><p>  if (mRoleStatus == UIModel.ROLE_STATUS_F

86、REEFALL) {</p><p>  if (mRoleSharp == UIModel.ROLE_SHARP_FREEFALL_NO1) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_FREEFALL_NO2;</p><p>  } else if (mRoleSharp == UIModel.ROLE_SHARP_

87、FREEFALL_NO2) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_FREEFALL_NO3;</p><p>  } else if (mRoleSharp == UIModel.ROLE_SHARP_FREEFALL_NO3) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_

88、FREEFALL_NO4;</p><p><b>  } else {</b></p><p>  mRoleSharp = UIModel.ROLE_SHARP_FREEFALL_NO1;</p><p><b>  }</b></p><p>  } else if (mRoleStatus

89、== UIModel.ROLE_STATUS_FREEFALL_RIGHT</p><p>  || mRoleStatus == UIModel.ROLE_STATUS_ON_FOOTBOARD_RIGHT) {</p><p>  if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_RIGHT_NO1) {</p><p>  m

90、RoleSharp = UIModel.ROLE_SHARP_MOVE_RIGHT_NO2;</p><p>  } else if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_RIGHT_NO2) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_MOVE_RIGHT_NO3;</p><p>

91、;  } else if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_RIGHT_NO3) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_MOVE_RIGHT_NO4;</p><p><b>  } else {</b></p><p>  mRoleSharp =

92、UIModel.ROLE_SHARP_MOVE_RIGHT_NO1;</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_LEFT_NO1) {</p><p

93、>  mRoleSharp = UIModel.ROLE_SHARP_MOVE_LEFT_NO2;</p><p>  } else if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_LEFT_NO2) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_MOVE_LEFT_NO3;</p><

94、p>  } else if (mRoleSharp == UIModel.ROLE_SHARP_MOVE_LEFT_NO3) {</p><p>  mRoleSharp = UIModel.ROLE_SHARP_MOVE_LEFT_NO4;</p><p><b>  } else {</b></p><p>  mRoleSharp

95、= UIModel.ROLE_SHARP_MOVE_LEFT_NO1;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  return mRoleSharp;</p><

96、;p><b>  }</b></p><p>  7.3.2隨機產(chǎn)生踏板</p><p>  在游戲中隨機生成20個隨機數(shù),并根據(jù)詳細設計里的規(guī)則形成相應的踏板,其算法如下:</p><p>  private void generateFootboard() {</p><p>  int frameAmount

97、 = 1;</p><p>  int frameDelay = 1;</p><p>  int frameType = FOOTBOARD_TYPE_NORMAL;</p><p>  switch (mRan.nextInt(20)) {</p><p><b>  case 0:</b></p>&

98、lt;p><b>  case 1:</b></p><p><b>  case 2:</b></p><p>  frameType = FOOTBOARD_TYPE_UNSTABLE;</p><p><b>  break;</b></p><p><b&g

99、t;  case 3:</b></p><p><b>  case 4:</b></p><p><b>  case 5:</b></p><p>  frameType = FOOTBOARD_TYPE_SPRING;</p><p><b>  break;</b

100、></p><p><b>  case 6:</b></p><p><b>  case 7:</b></p><p><b>  case 8:</b></p><p><b>  case 9:</b></p><p>

101、;<b>  case 10:</b></p><p><b>  case 11:</b></p><p>  frameType = FOOTBOARD_TYPE_SPIKED;</p><p><b>  break;</b></p><p><b>  cas

102、e 12:</b></p><p><b>  case 13:</b></p><p>  frameType = FOOTBOARD_TYPE_MOVING_LEFT;</p><p>  frameAmount = 2;</p><p>  frameDelay = 15;</p><

103、;p><b>  break;</b></p><p><b>  case 14:</b></p><p><b>  case 15:</b></p><p>  frameType = FOOTBOARD_TYPE_MOVING_RIGHT;</p><p>  f

104、rameAmount = 2;</p><p>  frameDelay = 15;</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  frameType = FOOTBOARD_TYPE_NORMAL;}</p>

105、<p>  mFootboardList.add(new Footboard(mRan.nextInt(mScreenAttribute.maxX</p><p>  - BORDER_ATTRIBUTE_IMAGE_WIDTH), mScreenAttribute.maxY</p><p>  + ROLE_ATTRIBUTE_HEITH, BORDER_ATTRIBUTE

106、_IMAGE_WIDTH,</p><p>  BORDER_ATTRIBUTE_IMAGE_HEITH, frameType, frameAmount,</p><p>  frameDelay));}</p><p>  隨機產(chǎn)生的踏板如圖7.1所示。</p><p>  圖 7.1 隨機產(chǎn)生的踏板</p><p>

107、;  7.3.3下一個踏板的生成</p><p>  當隨機產(chǎn)生踏板時,在游戲當中還要有生成下一個踏板的算法,生成下一個踏板的算法如下所示:</p><p>  public int nextFrame() {</p><p><b>  try {</b></p><p>  return mFrameCounter

108、/ mFrameDelay;</p><p>  } finally {</p><p>  mFrameCounter++;</p><p>  if (mFrameCounter == mFrameAmount * mFrameDelay) {</p><p>  mFrameCounter = 0;</p><p&g

109、t;<b>  }</b></p><p><b>  }</b></p><p>  7.3.4隨機生成加分物品</p><p>  根據(jù)詳細設計規(guī)定,隨機生成25個隨機數(shù),根據(jù)相關規(guī)定生成加分物品,實現(xiàn)算法如下:</p><p>  private void generateFood() {&l

110、t;/p><p>  if (mCurFood.mTimeCounter > 0) {</p><p><b>  return;</b></p><p><b>  }</b></p><p>  switch (mRan.nextInt(25)) {</p><p>&

111、lt;b>  case 0:</b></p><p>  mCurFood.mFoodReward = FOOD_1;</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  mCurFood.mFoodReward

112、 = FOOD_2;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  case 3:</b></p><p><b>  case 4:</b></p><

113、;p>  mCurFood.mFoodReward = FOOD_3;</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p><b>  case 6:</b></p><p><b>  case

114、 7:</b></p><p>  mCurFood.mFoodReward = FOOD_4;</p><p><b>  break;</b></p><p><b>  case 8:</b></p><p><b>  case 9:</b></p&g

115、t;<p><b>  case 10:</b></p><p>  mCurFood.mFoodReward = FOOD_5;</p><p><b>  break;</b></p><p><b>  case 11:</b></p><p><b&

116、gt;  case 12:</b></p><p><b>  case 13:</b></p><p>  mCurFood.mFoodReward = FOOD_6;</p><p><b>  break;</b></p><p><b>  case 14:</b

117、></p><p><b>  case 15:</b></p><p><b>  case 16:</b></p><p><b>  case 17:</b></p><p>  mCurFood.mFoodReward = FOOD_7;</p>&

118、lt;p><b>  break;</b></p><p><b>  case 18:</b></p><p><b>  case 19:</b></p><p><b>  case 20:</b></p><p><b>  cas

119、e 21:</b></p><p>  mCurFood.mFoodReward = FOOD_8;</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  mCurFood.mFoodReward = FOOD_NON

120、E;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  mCurFood.mMinX = mRan</p><p>  .nextInt((mScreenAttribute.maxX - FOOD_ATTRIBUTE_IMAGE_SIZE

121、));</p><p>  mCurFood.mMinY = mRan</p><p>  .nextInt((mScreenAttribute.maxY - FOOD_ATTRIBUTE_IMAGE_SIZE));</p><p>  mCurFood.mMaxX = mCurFood.mMinX + FOOD_ATTRIBUTE_IMAGE_SIZE;</

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論