2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p>  題 目 基于Android推箱子游戲的設(shè)計與實現(xiàn) </p><p>  系(院) 計算機科學(xué)與工程學(xué)院 </p><p>  基于Android推箱子游戲的設(shè)計與實現(xiàn)</p><p><b>  摘 要</b></p

2、><p>  本系統(tǒng)主要是實現(xiàn)基于Android的推箱子游戲,推箱子是一款來自日本的古老游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。游戲場景一般是設(shè)定在空間狹小的倉庫中,要求把箱子擺放到指定位置。這就要求玩家巧妙的運用有限的空間和通道,合理的安排箱子的位置和移動次序才可能完成任務(wù)。隨著計算機游戲的發(fā)展,很多編程愛好者基于該游戲的思想開發(fā)出了各種版本、各種類型的推箱子。這其中也包括很多手機版本的實現(xiàn),伴隨著Android

3、SDK技術(shù)的不斷發(fā)展,一些基于Android應(yīng)用也不斷推陳出新,很快推箱子游戲便進(jìn)入了千家萬戶。此Android推箱子游戲是基于Android SDK2.2基礎(chǔ)上設(shè)計的,主要分為游戲菜單界面、玩家定制功能、游戲數(shù)據(jù)存儲、游戲背景音樂設(shè)置、游戲幫助等功能模塊的設(shè)計與實現(xiàn),其中游戲菜單界面模塊主要是供用戶功能選擇而用的;玩家定制則主要是通過提供游戲難度選擇,使玩家根據(jù)自己的情況選擇不同的關(guān)卡;游戲用戶數(shù)據(jù)存儲主要是采用輕量級數(shù)據(jù)庫存儲技術(shù)存

4、儲游戲用戶的成績;游戲背景音樂設(shè)置主要是實現(xiàn)用戶可以選擇自己喜歡的音樂的功能;其次還包括音量的大小開關(guān);用戶游戲指南等功能模塊。</p><p>  本系統(tǒng)采用MVC開發(fā)模式,使用SQLite數(shù)據(jù)庫存儲技術(shù),基于Android SDK2.2開發(fā)平臺,使用Eclipse+Android SDK2.2+DDMS+DroidDraw作為系統(tǒng)開發(fā)、調(diào)試的主要工具</p><p>  關(guān)鍵詞:And

5、roid推箱子游戲 MVC SQLite Android SDK2.2</p><p>  The Design and Implementation of the PushBox System Based on Android</p><p><b>  Abstract</b></p><p>  This system mainly

6、 is to realize the pushed box game based on Android ,Pushed box is a section from Japan's oldest game and designed to train people logical thinking ability. Game scene generally are set in the narrow space warehouse,

7、 and demanded the box is put to the appointed place. This requires player clever use limited space and channel, reasonable arrangement of the box location and movement order just may complete the task. Along with the com

8、puter game development, many lovers of program</p><p>  The system USES the MVC development pattern, use SQLite database storage technology, based on SDK2.2 development platform, use Android Eclipse SDK2.2 D

9、DMS + + + Android DroidDraw as system development, the commissioning of the main tools</p><p>  Keywords: Android pushed box game. SDK2.2 MVC SQLite Android目 錄</p><p><b>  1 引言1</b>

10、</p><p>  1.1 開發(fā)背景1</p><p>  1.2 開發(fā)目的和意義2</p><p>  1.3 論文研究內(nèi)容3</p><p>  2 Android推箱子系統(tǒng)的相關(guān)研究4</p><p>  2.1MVC開發(fā)模式4</p><p>  2.2 推箱子游戲策劃5&

11、lt;/p><p>  2.3基于Android SDK2.2的開發(fā)技術(shù)5</p><p>  2.4Android中的文件存儲及輕量級數(shù)據(jù)庫SQLite的存儲技術(shù)6</p><p>  2.5 開發(fā)環(huán)境的搭建6</p><p><b>  3系統(tǒng)分析7</b></p><p>  3.1 系

12、統(tǒng)基本功能描述7</p><p>  3.2 可行性分析7</p><p>  3.3 系統(tǒng)需求分析8</p><p>  3.3.1 業(yè)務(wù)流程分析8</p><p>  3.3.1.1 推箱子游戲的主用例分析8</p><p>  3.3.1.1.1推箱子游戲主用例圖8</p><p&

13、gt;  3.3.1.1.1推箱子游戲主用例圖8</p><p>  3.3.1.1.1推箱子游戲主用例圖18</p><p>  3.3.1.1.2推箱子游戲的主用例描述8</p><p>  3.3.1.2推箱子游戲的菜單管理子系統(tǒng)用例分析9</p><p>  3.3.1.2.1 推箱子游戲菜單管理子系統(tǒng)用例圖9</p&

14、gt;<p>  3.3.1.2.2 推箱子游戲菜單管理子系統(tǒng)用例描述10</p><p>  3.3.1.3推箱子游戲的游戲過程子系統(tǒng)用例分析12</p><p>  3.3.1.3.1推箱子游戲的游戲過程子系統(tǒng)用例圖12</p><p>  3.3.1.3.2推箱子游戲的游戲過程子系統(tǒng)用例描述12</p><p>&

15、lt;b>  4系統(tǒng)設(shè)計14</b></p><p>  4.1 數(shù)據(jù)庫設(shè)計14</p><p>  4.1.1 概念結(jié)構(gòu)設(shè)計14</p><p>  4.1.3 Menu菜單界面14</p><p>  4.1.2 邏輯結(jié)構(gòu)設(shè)計14</p><p>  4.2 系統(tǒng)模塊設(shè)計15</

16、p><p>  4.3 系統(tǒng)算法設(shè)計17</p><p>  4.4 系統(tǒng)類結(jié)構(gòu)設(shè)計17</p><p>  4.4.1游戲過程模塊結(jié)構(gòu)圖17</p><p>  4.4.2游戲音量控制模塊類結(jié)構(gòu)圖18</p><p>  4.4.3游戲規(guī)則模塊類結(jié)構(gòu)圖19</p><p>  4.4.4

17、游戲規(guī)則模塊類結(jié)構(gòu)圖19</p><p>  4.4.5游戲規(guī)則模塊類結(jié)構(gòu)圖20</p><p><b>  5 系統(tǒng)實現(xiàn)22</b></p><p>  5.1 實現(xiàn)概況22</p><p>  5.2 游戲地圖模塊的實現(xiàn)22</p><p>  5.2.1游戲地圖模塊存儲結(jié)構(gòu)的實現(xiàn)

18、22</p><p>  5.2.2游戲地圖模塊采用2D模擬3D實現(xiàn)2.5D(斜視角)視覺效果24</p><p>  5.3 角色動畫效果模塊的實現(xiàn)25</p><p>  5.4箱子移動控制模塊的實現(xiàn)28</p><p>  5.5 其他模塊簡介31</p><p>  5.6 系統(tǒng)界面設(shè)計31</

19、p><p>  5.6.1 Menu菜單界面31</p><p>  5.6.2 游戲過程模塊界面31</p><p>  5.6.3 音量設(shè)置模塊界面33</p><p>  5.6.4 最高游戲記錄查看模塊界面34</p><p>  5.6.5 關(guān)卡設(shè)置模塊界面34</p><p>

20、  5.6.6游戲規(guī)則查看模塊界面35</p><p>  5.6.7 音效選擇模塊界面36</p><p><b>  結(jié)論37</b></p><p><b>  參考文獻(xiàn)38</b></p><p><b>  致謝39</b></p><p

21、><b>  1 引言</b></p><p><b>  1.1 開發(fā)背景</b></p><p>  Android是由Google為首的OHA(Open Handset Alliance)推出的一款開放的嵌入式操作系統(tǒng)平臺,從2008推出的android SDK1.0到現(xiàn)在,Android SDK的最新版本已經(jīng)升級到了2.3,最新3.

22、0也已產(chǎn)生,Android正以前所未有的速度聚集著來自世界各地的開發(fā)者,越來越多的創(chuàng)意被應(yīng)用到Android應(yīng)用程序的開發(fā)中,大有席卷整個手機產(chǎn)業(yè)的趨勢。</p><p>  說到Android系統(tǒng),Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。</p><

23、;p>  Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。由于Android帶有相當(dāng)濃郁的Linux血統(tǒng)這也就意味著他擁有開源Linux的眾多優(yōu)點:安全、運算速度快、易于開發(fā)等等。</p><p>  正因為Android具有上述的優(yōu)點,所以它在國內(nèi)具有相當(dāng)強勁的競爭優(yōu)勢。青年網(wǎng)絡(luò)的主要負(fù)責(zé)人潘長華先生說到:Android作為一款十分優(yōu)秀的

24、移動開發(fā)平臺十分適合國內(nèi)的開發(fā)環(huán)境。尤其是中小企業(yè)開發(fā)團隊低成本以及源代碼的分享可以為企業(yè)節(jié)省大量資金,這對于中小企業(yè)來說無疑是最大的誘惑。青年網(wǎng)絡(luò)推出的"星網(wǎng)睿話"就是國內(nèi)成功的Android開發(fā)產(chǎn)品。</p><p>  同時一個資深的Android開發(fā)愛好者告訴記者:如果你是個人開發(fā)愛好者,那么Android就是Google為你量身打造的,放棄閉源的種種吧,開源才是王道,Android才

25、是未來的主宰。</p><p>  伴隨著Google Android操作系統(tǒng)的盛行,國內(nèi)外的開發(fā)團隊也逐漸的壯大起來了,基于Android SDK的系統(tǒng)開發(fā),基于Android應(yīng)用的開發(fā)等已逐漸倍受大家關(guān)注,而手機游戲開發(fā)歷來是移動開發(fā)中分量最重的部分,面對如此火爆的Android市場自然也不甘示弱,由于Android的應(yīng)用層開發(fā)是基于Java的開發(fā),所以必有其可以快速移植J2ME開發(fā)的游戲的優(yōu)勢,但是移植的游

26、戲必定也不能發(fā)揮Android操作系統(tǒng)獨特的特性,所以目前基于Android游戲開發(fā)的市場還是不夠成熟的,用戶對游戲的需求量卻在不斷擴大中。</p><p>  1.2 開發(fā)目的和意義</p><p>  根據(jù)iResearch艾瑞市場咨詢整理的國外數(shù)據(jù)顯示,全球手機游戲市場的收入規(guī)模在2005年達(dá)到了102億美元, 2008年達(dá)到520億美元 。07年之后,手機游戲市

27、場增速開始減緩,傳統(tǒng)手機游戲逐漸顯現(xiàn)頹勢,市場增長主要由基于智能手機平臺的游戲所帶動。Android游戲進(jìn)入智能手機游戲市場,必將打破原有格局,開辟手機游戲新紀(jì)元。</p><p><b>  圖1-1 調(diào)查結(jié)果</b></p><p>  Android平臺上的游戲相比應(yīng)用軟件,不需要進(jìn)行嚴(yán)格的市場細(xì)分,不需要針對目標(biāo)用戶量身定制。這是因為游戲玩家的核心需求是統(tǒng)一的

28、,那就是:娛樂與打發(fā)時間(乃至更高層面的競技需求和群體認(rèn)同需求),這種需求附著于特定的社會發(fā)展階段,不受地域的限制,甚至于能夠穿透文化壁壘。因此,絕大多數(shù)種類的游戲都具備傳染性與普適性,每一個售出的游戲都像一個火種,將會點燃周圍潛在玩家的激情,激情的火焰迅速蔓延,最終吞噬整個需求市場,當(dāng)然前提是開發(fā)的游戲是高質(zhì)量的。</p><p>  此外,幾乎每一個Android手機用戶都是游戲的需求者,都是潛在的顧客,現(xiàn)今

29、的400多萬Android用戶不過是冰山一角,隨著Android手機市場進(jìn)一步壯大,游戲的市場容量將具備較大的增長空間,游戲開發(fā)者不會愁吃不飽,只會愁胃口不夠大。</p><p>  面對如此潛在的游戲市場,為Android手機游戲用戶量身定做一款兼具Android平臺特色的手機游戲也實為意義深遠(yuǎn)。</p><p>  1.3 論文研究內(nèi)容</p><p>  研究

30、并開發(fā)一個基于Android的推箱子游戲,所做的主要工作在于:</p><p>  基于Android SDK2.2的開發(fā)技術(shù)</p><p>  Android SDK包含了開發(fā)所應(yīng)用的類庫,用戶要基于Android平臺開發(fā)應(yīng)用就應(yīng)熟悉SDK的對外接口,其中開發(fā)Android游戲應(yīng)用通常會用到如下一些類,Surfaceview類作為MVC中視圖類的基類的開發(fā)框架是一般游戲開發(fā)比較常用的一

31、種開發(fā)框架,使用此類時還需要對其進(jìn)行創(chuàng)建、銷毀,情況改變時的監(jiān)聽,這就還需要實現(xiàn)SurfaceHolder.Callback接口。其中Android游戲開發(fā)還需要通過Graphics類來顯示2D圖形,Graphics中包括了Canvas(畫布)、Paint(畫筆)、Color(顏色)、Bitmap(圖像)、2D幾何圖形等常用類,并且還涉及一些OpenGL圖形程序接口方面的技術(shù)。</p><p>  2、2.5d的

32、呈現(xiàn)技術(shù)</p><p>  所謂的2.5D,介乎于模真的3D與完全平面的2D之間。即模擬了3D的空間感,也兼具2D的靈動簡單,是一種“優(yōu)勢”的綜合體。就我個人認(rèn)為,誠然2.5D最早的出現(xiàn)動機只是為了2D到3D間過渡。但就其應(yīng)用而講,好的2.5D圖形即有3D的自由度與質(zhì)感,又能利用2D圖形將漫畫式人物塑造得惟妙惟肖,使其擁有純3D還無法做到的優(yōu)勢。因此2.5D在現(xiàn)在乃至未來的一段較長時間里還會和3D并存,直到3D

33、圖形的開發(fā)效率及表現(xiàn)形式能徹底取代2.5D為止。</p><p>  3、數(shù)據(jù)存儲采用文件存儲及輕量級數(shù)據(jù)庫SQLite的存儲技術(shù)</p><p>  Android的數(shù)據(jù)存儲有4種方式,分別是Shared Preferences存儲技術(shù)以“key-value paires” 格式的數(shù)據(jù)存儲機制,F(xiàn)iles存儲技術(shù)通過FileInputStrean和FileOutputStream操作,N

34、etwork技術(shù)通過網(wǎng)絡(luò)來存儲和獲取數(shù)據(jù)。還有一種就是輕量級數(shù)據(jù)庫SQLite,它是Android的標(biāo)準(zhǔn)數(shù)據(jù)庫,支持SQL語句。SQLite數(shù)據(jù)庫功能非常強大,使用起來也非常方便。</p><p><b>  4、系統(tǒng)的構(gòu)建</b></p><p>  本系統(tǒng)采用MVC開發(fā)模式,使用SQLite數(shù)據(jù)庫存儲技術(shù),基于Android SDK2.2開發(fā)平臺,使用Eclips

35、e+Android SDK2.2+DDMS+DroidDraw作為系統(tǒng)開發(fā)、調(diào)試的主要工具。</p><p>  2 Android推箱子系統(tǒng)的相關(guān)研究</p><p>  2.1MVC開發(fā)模式</p><p>  Android遵循MVC開發(fā)模式,所謂MVC也就是Model-View-Controller的首字母縮寫,MVC開發(fā)模式把應(yīng)用程序開發(fā)分成三個部分,Mo

36、del即模型用于管理數(shù)據(jù),View即視圖用來制作用戶界面,而Controller即控制器管理應(yīng)用程序的邏輯。以下主要講了Android中MVC的框架原理。</p><p>  從用戶的角度出發(fā),用戶可以根據(jù)自己的需求,選擇自己合適的瀏覽數(shù)據(jù)的方式。比如說,對于一篇在線文檔,用戶可以選擇以HTML網(wǎng)頁的方式閱讀,也可以選擇以pdf的方式閱讀。從開發(fā)者的角度,MVC把應(yīng)用程序的邏輯層與界面是完全分開的,最大的好處是:

37、界面設(shè)計人員可以直接參與到界面開發(fā),程序員就可以把精力放在邏輯層上。而不是像以前那樣,設(shè)計人員把所有的材料交給開發(fā)人員,由開發(fā)人員來實現(xiàn)界面。在VS 2008開發(fā)工具中設(shè)計人員就可以直接通過Silverlight來開發(fā)界面,在Eclipes工具中開發(fā)Android采用了更加簡單的方法,設(shè)計人員在DroidDraw中設(shè)計界面,以XML方式保存,在Eclipes中直接打開就可以看到設(shè)計人員設(shè)計的界面。</p><p>

38、;  Android中界面部分也采用了當(dāng)前比較流行的MVC框架,在Android中M就是應(yīng)用程序中二進(jìn)制的數(shù)據(jù),V就是用戶的界面。Android的界面直接采用XML文件保存的,界面開發(fā)變的很方便。在Android中C也是很簡單的,一個Activity可以有多個界面,只需要將視圖的ID傳遞到setContentView(),就指定了以哪個視圖模型顯示數(shù)據(jù)。</p><p>  在Android SDK中的數(shù)據(jù)綁定,

39、也都是采用了與MVC框架類似的方法來顯示數(shù)據(jù)。在控制層上將數(shù)據(jù)按照視圖模型的要求(也就是Android SDK中的Adapter)封裝就可以直接在視圖模型上顯示了,從而實現(xiàn)了數(shù)據(jù)綁定。比如顯示Cursor中所有數(shù)據(jù)的ListActivity,其視圖層就是一個ListView,將數(shù)據(jù)封裝為ListAdapter,并傳遞給ListView,數(shù)據(jù)就在ListView中現(xiàn)實。</p><p>  圖2-1:Android

40、中的MVC框架結(jié)構(gòu)圖</p><p>  2.2 推箱子游戲策劃</p><p>  游戲的策劃主要包括游戲的情節(jié)、目標(biāo)受眾、運行的目標(biāo)平臺、采用的呈現(xiàn)技術(shù)、操作方式等幾個方面。下面就針對本游戲?qū)ι鲜鰩讉€方面進(jìn)行簡單的介紹,如下所列。</p><p>  游戲情節(jié),本游戲為輕量級的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面主要要做的工作主要為設(shè)計游戲各關(guān)倉庫的形狀、大

41、小、可通過區(qū)域,以及各關(guān)中箱子的初始位置與目的地。 </p><p>  目標(biāo)受眾 ,這個游戲受眾面比較廣,應(yīng)該是老少皆宜的??紤]到受眾面廣的原因,應(yīng)該將操作方式設(shè)計得更加人性化,畫面更加清新。 </p><p>  運行的目標(biāo)平臺,本游戲的目標(biāo)平臺為Android2.0及以上版本。</p><p>  采用的呈現(xiàn)技術(shù),推箱子游戲一般采用的都是2D的呈現(xiàn)技術(shù),本案例

42、為了增強游戲的吸引力,采用2.5D呈現(xiàn)技術(shù)。2.5D呈現(xiàn)技術(shù)也有多種視角可供選擇,本游戲采用45度視角。 </p><p>  操作方式,本游戲擬采用手機鍵盤進(jìn)行操作,對于沒有鍵盤的型號也可以考慮采用虛擬鍵盤。 </p><p>  2.3基于Android SDK2.2的開發(fā)技術(shù)</p><p>  主要技術(shù)就是運用Android SDK中的內(nèi)置類庫,來完成整個游

43、戲的繪制與控制,其中主要用到的內(nèi)置類有Surfaceview并實現(xiàn)SurfaceHolder.Callback接口以及Graphics中的Canvas(畫布)、Paint(畫筆)、Color(顏色),Bitmap(圖像)、2D幾何圖形等常用類,并且還涉及一些OpenGL圖形程序接口方面的技術(shù)。</p><p>  2.4Android中的文件存儲及輕量級數(shù)據(jù)庫SQLite的存儲技術(shù)</p><

44、p>  Android的數(shù)據(jù)存儲有4種方式,分別是Shared Preferences存儲技術(shù)以“key-value paire”格式的數(shù)據(jù)存儲機制Files存儲技術(shù)通過FileInputStrean和FileOutputStream操作,Network技術(shù)通過網(wǎng)絡(luò)來存儲和獲取數(shù)據(jù)。還有一種就是輕量級數(shù)據(jù)庫SQLite,它是Android的標(biāo)準(zhǔn)數(shù)據(jù)庫,支持SQL語句。SQLite數(shù)據(jù)庫功能非常強大,使用起來也非常方便。</p

45、><p>  2.5 開發(fā)環(huán)境的搭建</p><p>  1)下載SDK下載安裝器,網(wǎng)址http://androidappdocs.appspot.com/sdk/index.html,選擇Windows的平臺的下載。</p><p>  2)運行Android SDK下載安裝器SDK Setup.exe</p><p>  圖2-2 SD

46、K 下載器</p><p>  配置和下載SDK,選擇 Available Packages 然后選擇你要安裝的sdK包,最后按 Install Selected 按鈕進(jìn)行安裝。</p><p>  圖2-3 下載SDK</p><p>  其實一般啟動SDK Setup,都會自動檢查更新包,彈出類似如下界面。根據(jù)你的要求自行選擇所需安裝包,安裝即可。其功能同上面(

47、圖2-3)</p><p>  圖2-4更新(下載)SDK</p><p>  當(dāng)電腦不支持https連接,選擇setting的將Force https://... Sources to be fetched by using http://... 的選項打勾。</p><p>  圖2-5 https->http選項</p><p>

48、<b>  3系統(tǒng)需求分析</b></p><p>  3.1 系統(tǒng)基本功能描述</p><p>  推箱子是一款來自日本的古老游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。游戲場景一般是設(shè)定在空間狹小的倉庫中,要求把箱子擺放到指定位置。這就要求玩家巧妙的運用有限的空間和通道,合理的安排箱子的位置和移動次序才可能完成任務(wù)。</p><p><b

49、>  具體的功能如下:</b></p><p>  1)游戲菜單界面,此界面主要提供用戶功能選擇。</p><p>  2)玩家定制功能,通過提供游戲難度選擇,使玩家根據(jù)自己的情況選擇不同的關(guān)卡進(jìn)行游戲。 </p><p>  3)游戲數(shù)據(jù)存儲,關(guān)卡采用文件存儲,游戲成績采用sqlite輕量級數(shù)據(jù)庫存儲。</p><p> 

50、 4)游戲背景音樂設(shè)置,主要實現(xiàn)讓該游戲提供若干種背景音樂以供用戶的選擇。</p><p>  5)游戲幫助,還需要為本游戲添加幫助界面,簡單介紹游戲的基本功能及玩法。</p><p><b>  3.2 可行性分析</b></p><p>  本系統(tǒng)的可行性分析包括以下幾個方面的內(nèi)容:</p><p><b>

51、;  1) 技術(shù)可行性</b></p><p>  SQLite數(shù)據(jù)庫與Android SDK2.2技術(shù)的有機結(jié)合,可以很輕松地開發(fā)出推箱子游戲。</p><p>  因此技術(shù)上是可以實現(xiàn)的。</p><p><b>  2) 經(jīng)濟可行性</b></p><p>  隨著計算機游戲的發(fā)展,很多編程愛好者基于該

52、游戲的思想開發(fā)了出各種版本、各種類型的推箱子。這其中也包括很多手機版本的實現(xiàn),伴隨著手機與計算機的普及,很快推箱子游戲便進(jìn)入了千家萬戶。</p><p>  因此,從經(jīng)濟上來說,開發(fā)推箱子游戲不需要很大的投入,硬件上只需普通的PC電腦一臺,附加配置好模擬器的運行環(huán)境即可,有條件的話可以再配備Android2.2系統(tǒng)的真機一臺,用于真機測試。</p><p><b>  3) 操作

53、可行性</b></p><p>  由于Android可以和Eclipse配置開發(fā)環(huán)境,且實際開發(fā)環(huán)境為開源的,所以在操作上是可行的。</p><p>  綜上所述,基于Android的推箱子系統(tǒng)在高校中是可行的。</p><p>  3.3 系統(tǒng)需求分析</p><p>  本游戲主要是設(shè)定在空間狹小的倉庫中,要求小人把箱子擺放

54、到指定位置。當(dāng)小人將箱子推到指定位置時箱子變色,當(dāng)小人碰到障礙物墻壁時小人將無法移動,當(dāng)所有的箱子都被推到指定的位置時,游戲成功,因此這就要求玩家巧妙的運用有限的空間和通道,合理的安排箱子的位置和移動次序才可能完成任務(wù)。</p><p>  3.3.1 業(yè)務(wù)流程分析</p><p>  3.3.1.1 推箱子游戲的主用例分析</p><p>  推箱子游戲主用例主要

55、分為一些菜單選項的設(shè)置和玩游戲的整個過程。</p><p>  3.3.1.1.1推箱子游戲主用例圖</p><p><b>  如圖3-1所示:</b></p><p>  圖3-1 系主統(tǒng)用例圖</p><p>  3.3.1.1.2推箱子游戲的主用例描述</p><p>  1、如上圖3-1

56、:用例1菜單管理</p><p><b>  用例描述:菜單管理</b></p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:android手機用戶、安裝有推箱子應(yīng)用程序 </p><p>  后置條件:可以進(jìn)行相關(guān)游戲選項的設(shè)置 </p><p>

57、;<b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入菜單界面</b></p><p>  3)進(jìn)行相關(guān)游戲選項的設(shè)置或選擇開始游戲</p><p>  2、如上圖3-1:用例2玩游戲</p>

58、<p><b>  用例描述:玩游戲</b></p><p><b>  執(zhí)行者:玩家</b></p><p><b>  前置條件:開始游戲</b></p><p>  后置條件:退出游戲或游戲成功</p><p><b>  基本路徑</b>

59、;</p><p><b>  1)運行應(yīng)用程序</b></p><p>  2)進(jìn)入菜單并選擇游戲開始</p><p>  3)通過手機硬鍵盤控制小人移動從而將箱子移動到指定位置</p><p>  3.3.1.2推箱子游戲的菜單管理子系統(tǒng)用例分析</p><p>  玩家通過菜單管理子系統(tǒng)主要

60、可以進(jìn)行音量大小的設(shè)置,可以查看游戲的幫助文檔,可以進(jìn)行游戲關(guān)卡的選擇,可以查看玩家的最高游戲記錄并且還可以選擇游戲背景音樂。</p><p>  3.3.1.2.1 推箱子游戲菜單管理子系統(tǒng)用例圖</p><p><b>  如圖3-2所示:</b></p><p>  圖3-2菜單管理子系統(tǒng)用例圖</p><p> 

61、 3.3.1.2.2 推箱子游戲菜單管理子系統(tǒng)用例描述</p><p>  1、如上圖3-2:用例1.1設(shè)置音量大小</p><p>  用例描述:設(shè)置音量大小</p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入菜單界面 </p><p>  后置條件:返回菜單界

62、面或開始游戲 </p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入菜單界面</b></p><p>  3)觸摸菜單界面的音量調(diào)節(jié)的按鈕</p><p>  4)拖

63、動音量調(diào)節(jié)的控件調(diào)節(jié)音量的大小</p><p>  2、如上圖3-2:用例1.2查看游戲規(guī)則</p><p>  用例描述:查看游戲規(guī)則</p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入菜單界面 </p><p>  后置條件:返回菜單界面或開始游戲 </

64、p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入菜單界面</b></p><p>  3)觸摸菜單界面的查看游戲規(guī)則的按鈕</p><p>  4)跳轉(zhuǎn)到游戲規(guī)則的查看界

65、面,玩家可以對照游戲規(guī)則開始游戲</p><p>  3、如上圖3-2:用例1.3選擇關(guān)卡</p><p><b>  用例描述:選擇關(guān)卡</b></p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入菜單界面 </p><p>  后置條件:返

66、回菜單界面或開始游戲 </p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入菜單界面</b></p><p>  3)觸摸菜單界面的關(guān)卡選擇按鈕</p><p>  

67、4)進(jìn)入關(guān)卡選擇的界面,關(guān)卡選擇分為中、易、難三個級別的選項,其中第一關(guān)是相對簡單的,第二關(guān)代表的的是難度中等的,第三關(guān)代表較有難度的關(guān)卡。玩家可以根據(jù)自己的能力水平選擇自己適合的關(guān)卡。</p><p>  4、如上圖3-2:用例1.4查看玩家最高游戲記錄</p><p>  用例描述:查看玩家最高游戲記錄</p><p><b>  執(zhí)行者:玩家<

68、/b></p><p>  前置條件:進(jìn)入菜單界面 </p><p>  后置條件:返回菜單界面或開始游戲 </p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入菜單界面&

69、lt;/b></p><p>  3)觸摸菜單界面的玩家最高記錄查詢按鈕</p><p>  4)進(jìn)入最高記錄查詢的界面,最高記錄查詢界面主要從數(shù)據(jù)庫中獲取玩家的最高游戲記錄然后呈現(xiàn)在界面上。</p><p>  5、如上圖3-2:用例1.5選擇游戲背景音樂</p><p>  用例描述:選擇游戲背景音樂</p><

70、p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入菜單界面 </p><p>  后置條件:返回菜單界面或開始游戲 </p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><

71、;p><b>  2)進(jìn)入菜單界面</b></p><p>  3)點擊手機硬鍵盤的menu按鈕,調(diào)用menu菜單 </p><p>  4)點擊音效選擇的選項,進(jìn)入游戲背景音樂設(shè)置的界面,游戲背景音樂設(shè)置分為關(guān)閉音效及四種背景音效的選擇</p><p>  3.3.1.3推箱子游戲的游戲過程子系統(tǒng)用例分析</p><

72、p>  推箱子游戲的游戲過程子系統(tǒng)用例主要分為開始游戲和退出游戲。</p><p>  3.3.1.3.1推箱子游戲的游戲過程子系統(tǒng)用例圖</p><p><b>  如圖3-3所示:</b></p><p>  圖3-3 游戲過程子系統(tǒng)用例圖</p><p>  3.3.1.3.2推箱子游戲的游戲過程子系統(tǒng)用例描

73、述</p><p>  1、如上圖3-3:用例2.1開始游戲</p><p><b>  用例描述:開始游戲</b></p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入開始游戲界面 </p><p>  后置條件:可以選擇退出游戲或者保存玩家

74、記錄后繼續(xù)游戲 </p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入游戲主界面</b></p><p>  3)將箱子推到指定的位置后保存玩家記錄繼續(xù)玩下一關(guān)或者直接退出游戲</p&

75、gt;<p>  2、如上圖3-3:用例2.2退出游戲</p><p><b>  用例描述:退出游戲</b></p><p><b>  執(zhí)行者:玩家</b></p><p>  前置條件:進(jìn)入開始游戲界面 </p><p><b>  后置條件:無</b>&l

76、t;/p><p><b>  基本路徑:</b></p><p><b>  1)運行應(yīng)用程序</b></p><p><b>  2)進(jìn)入游戲主界面</b></p><p>  3)點擊手機硬鍵盤上的menu按鍵,調(diào)出menu菜單</p><p>  4

77、)選擇退出游戲的menu選項,游戲結(jié)束 </p><p><b>  4系統(tǒng)設(shè)計</b></p><p><b>  4.1 數(shù)據(jù)庫設(shè)計</b></p><p>  4.1.1 概念結(jié)構(gòu)設(shè)計</p><p>  推箱子游戲所涉及的主要實體及其屬性有:</p><p>  1)

78、 用戶(用戶編號,用戶名,成績)</p><p>  E-R模型如圖4-1所示。</p><p>  圖 4-1系統(tǒng)實體及其屬性</p><p>  4.1.2 邏輯結(jié)構(gòu)設(shè)計</p><p><b>  1.數(shù)據(jù)表總體設(shè)計</b></p><p>  根據(jù)以上的分析,將E-R模型轉(zhuǎn)換成邏輯模型,設(shè)

79、計出本系統(tǒng)數(shù)據(jù)庫。根據(jù)需要,設(shè)計了一個數(shù)據(jù)表。如下所示:</p><p>  用戶信息表:該表記錄了用戶的基本信息,包括用戶編號、用戶名、成績</p><p><b>  2.表結(jié)構(gòu)</b></p><p>  根據(jù)上面的邏輯結(jié)構(gòu)設(shè)計,設(shè)計相應(yīng)的表結(jié)構(gòu)如下表4-1所示。</p><p>  該表記錄了用戶的基本信息及用戶

80、成績,包括用戶編號、用戶名、成績</p><p><b>  表4-1 User</b></p><p>  4.2 系統(tǒng)模塊設(shè)計</p><p>  模塊設(shè)計的主要方法是結(jié)構(gòu)化方法,主導(dǎo)思想是以系統(tǒng)的邏輯功能設(shè)計和數(shù)據(jù)流關(guān)系為基礎(chǔ),采用“自頂向下,逐步求精”的設(shè)計方法,將本系統(tǒng)分解為功能明確,易于修改,大小適中的模塊結(jié)構(gòu)。 本系統(tǒng)主要分為七個

81、基本模塊:游戲過程模塊、游戲音量設(shè)置模塊、游戲規(guī)則模塊、游戲關(guān)卡設(shè)置模塊、音效選擇模塊、玩家最高記錄查詢,保存記錄退出模塊,系統(tǒng)各模塊功能圖如圖4-2所示。</p><p>  圖4-2 系統(tǒng)功能模塊圖</p><p>  系統(tǒng)各模塊功能說明:</p><p><b>  1.音量設(shè)置模塊</b></p><p>  此

82、模塊主要是調(diào)節(jié)系統(tǒng)背景音樂音量大小的模塊,給用戶增加用戶體驗。</p><p>  2.游戲規(guī)則查看模塊</p><p>  此模塊主要給用戶提供玩法指南的模塊。</p><p><b>  3. 音效選擇模塊</b></p><p>  此模塊主要給用戶提供背景音效選擇的模塊,其中主要分為關(guān)閉音效及對其余3種音效的選擇

83、的模塊。</p><p>  4. 玩家最高游戲記錄查詢模塊</p><p>  此模塊主要提供用戶查看最高游戲記錄,由于本游戲支持多用戶,所以會把每個用戶的最高游戲記錄都呈現(xiàn)出來。</p><p>  5.游戲關(guān)卡設(shè)置模塊</p><p>  此模塊主要是給用戶進(jìn)行關(guān)卡的選擇,本游戲中主要設(shè)置易、中、難三個級別的關(guān)卡選擇。</p>

84、;<p>  6、游戲過程控制模塊</p><p>  此模塊主要是控制游戲過程界面的繪制、鍵盤事件的監(jiān)聽、對監(jiān)聽事件的響應(yīng)處理等,是整個游戲的核心功能模塊。其中游戲過程模塊又可以分為如下五個子模塊如圖4-3所示。</p><p>  圖4-3 游戲過程模塊子模塊圖</p><p>  對游戲過程模塊的子模塊描述如下:</p><p

85、><b>  1)初始化模塊。</b></p><p>  該模塊包括屏幕初始化和游戲第一關(guān)的初始化。屏幕初始化用于繪制整個初始畫面,游戲每一關(guān)的初始化是構(gòu)建每一關(guān)的關(guān)卡。</p><p><b>  2)畫圖模塊。</b></p><p>  該模塊主要是被其它模塊調(diào)用,用于畫墻、畫箱子、在目的地畫箱子、畫小人和畫

86、目的地的模塊。</p><p><b>  3)移動箱子模塊</b></p><p>  該模塊用于移動箱子,包括目的地之間、空地之間和目的地與空地之間的箱子移動。</p><p><b>  4)移動角色模塊</b></p><p>  該模塊用于控制小人移動,從而推動箱子到目的地的模塊。<

87、/p><p>  5)鍵盤事件監(jiān)聽模塊</p><p>  該模塊主要通過對鍵盤事件,觸摸事件的響應(yīng)處理模塊。</p><p>  4.3 系統(tǒng)算法設(shè)計</p><p>  本系統(tǒng)核心部分是游戲的控制過程,游戲畫面事件監(jiān)聽與游戲畫面的繪制過程。其整個游戲過程控制算法設(shè)計如下圖4-4</p><p>  圖4-4游戲過程控制

88、算法設(shè)計</p><p>  4.4 系統(tǒng)類結(jié)構(gòu)設(shè)計</p><p>  4.4.1游戲過程模塊結(jié)構(gòu)圖</p><p>  游戲過程控制模塊中GameView是游戲模塊的核心類,它除了控制整個界面繪制外,還要響應(yīng)用戶的觸屏或鍵盤操作信息,然后通過消息通信機制,將最新主控信息返回給公共類MainActivity,類結(jié)構(gòu)圖如下圖4-5所示</p><

89、p>  圖4-5游戲過程模塊結(jié)構(gòu)圖</p><p>  4.4.2游戲音量控制模塊類結(jié)構(gòu)圖</p><p>  游戲音量設(shè)置模塊中主要調(diào)節(jié)音量大小的類是SeekBarActivity,它通過AudioManager控制后臺Service來實現(xiàn)音量的上調(diào)、下降的功能。其中與它相關(guān)的類有GameView類,調(diào)節(jié)好音量大小后可以直接通過MainActivity跳轉(zhuǎn)到游戲界面。類結(jié)構(gòu)如下圖4

90、-6所示。</p><p>  圖4-6游戲音量控制模塊類結(jié)構(gòu)圖</p><p>  4.4.3游戲規(guī)則模塊類結(jié)構(gòu)圖</p><p>  游戲規(guī)則模塊中主要提供游戲規(guī)則查看的類是GameRuleActivity,與它相關(guān)聯(lián)的類是MainActivity類,MainActivity主要是控制整個頁面跳轉(zhuǎn)和消息處理的公共類。</p><p>&l

91、t;b>  如圖4-7所示。</b></p><p>  圖4-7 游戲規(guī)則模塊類結(jié)構(gòu)圖</p><p>  4.4.4游戲規(guī)則模塊類結(jié)構(gòu)圖</p><p>  游戲關(guān)卡設(shè)置模塊通過LevelSelectActivity響應(yīng)游戲關(guān)卡的的設(shè)置,然后通過公共類MainActivity去讀取相應(yīng)的map關(guān)卡文件(地圖文件主要存儲在Android系統(tǒng)文件的

92、Assets目錄下)。類結(jié)構(gòu)圖如圖4-8所示</p><p>  圖4-8游戲關(guān)卡設(shè)置類結(jié)構(gòu)圖</p><p>  4.4.5游戲規(guī)則模塊類結(jié)構(gòu)圖</p><p>  游戲音效選擇模塊主要類是ActivityList類,核心類是后臺服務(wù)MyService類,ActivityList類提供了一系列供選擇的音效,通過用戶的響應(yīng)后,向公共類發(fā)出請求信息,公共類MainAc

93、tivity接受到請求信息后向處于后臺服務(wù)的音樂播放器提出服務(wù)請求,最后后臺服務(wù)MySevice將響應(yīng)處理結(jié)果返回給用戶。</p><p>  類結(jié)構(gòu)圖如圖4-9所示</p><p>  圖4-9游戲音效選擇類結(jié)構(gòu)圖</p><p><b>  5 系統(tǒng)實現(xiàn)</b></p><p><b>  5.1 實現(xiàn)概況

94、</b></p><p>  本系統(tǒng)可分為游戲過程控制模塊、游戲音量設(shè)置模塊、游戲規(guī)則模塊、游戲關(guān)卡設(shè)置模塊、音效選擇模塊、玩家最高記錄查詢,保存記錄退出模塊七個功能模塊。游戲過程控制模塊主要是對整個游戲進(jìn)行控制的模塊。游戲音量設(shè)置模塊主要是調(diào)節(jié)背景音量大小的模塊。游戲規(guī)則模塊主要是提供游戲規(guī)則查看的模塊。游戲音效選擇模塊供用戶選擇喜好的音效,增強用戶體驗,玩家最高游戲記錄查詢供用戶查看游戲水平,保存

95、記錄退出模塊主要是提供用戶保存歷史記錄的功能。</p><p>  下面詳細(xì)介紹各個游戲核心模塊的實現(xiàn)。</p><p>  5.2 游戲地圖模塊的實現(xiàn)</p><p>  5.2.1游戲地圖模塊存儲結(jié)構(gòu)的實現(xiàn)</p><p>  游戲地圖模塊實現(xiàn)是整個游戲過程的核心,由于游戲的整個過程呈現(xiàn)三維立體的效果,所以游戲地圖設(shè)置也是至關(guān)重要的一塊,

96、游戲地圖整體是用二維數(shù)組存儲在文件中的,每次打開游戲會初始化一次地圖文件,游戲地圖分為兩層地板:</p><p>  底層地板分為三類情況,二維數(shù)組值1代表灰色地磚,二維數(shù)組值0代表米色地磚,二維數(shù)組值3代表目的地。(例第一關(guān)底層地圖文件map1.txt存儲數(shù)據(jù)為0101010101010101010101010131010101310101010101010101010101010101010101010101

97、1010131010101010101010101011101010)</p><p>  上層地板也分為三類情況,二維數(shù)組值1代表障礙物墻壁,二維數(shù)組值3代表箱子,二維數(shù)組值4代表小人。(例第一關(guān)上層地圖文件map1.1.txt存儲數(shù)據(jù)為1111111111110040000001103000300011000000000110001000001100003000011000000000110000000001

98、1000000000111111111111)</p><p>  具體地圖文件在實現(xiàn)中的位置如下圖assets文件夾:</p><p>  圖5-1:地圖文件存儲結(jié)構(gòu)</p><p><b>  關(guān)鍵代碼如下:</b></p><p>  com.cslg.pushBox.util.GetMapFromFile.jav

99、a類</p><p>  /** 從assets 文件夾中獲取文件并讀取數(shù)據(jù) */</p><p>  public class GetMapFromFile {</p><p>  public static final String ENCODING = "UTF-8"; </p><p>  Activity m

100、ainActivity;</p><p>  public GetMapFromFile(Activity mainActivity)</p><p><b>  {</b></p><p>  this.mainActivity=mainActivity;</p><p><b>  }</b>&

101、lt;/p><p>  public String getFromAssets(String fileName){ </p><p>  String result = ""; </p><p><b>  try { </b></p><p>  InputStream in = mainA

102、ctivity.getResources().getAssets().open(fileName); </p><p>  //獲取文件的字節(jié)數(shù) </p><p>  int lenght = in.available(); </p><p>  //創(chuàng)建byte數(shù)組 </p><p>  byte[] buffer = n

103、ew byte[lenght]; </p><p>  //將文件中的數(shù)據(jù)讀到byte數(shù)組中 </p><p>  in.read(buffer); </p><p>  result = EncodingUtils.getString(buffer, ENCODING); </p><p>  } catch (Except

104、ion e) { </p><p>  e.printStackTrace(); </p><p><b>  } </b></p><p>  return result; </p><p><b>  } </b></p><p><b> 

105、 }</b></p><p>  com.cslg.pushBox.MainActivity.java類</p><p>  /**底層地板地圖*/</p><p>  char[]mapChar=new char[mapStr.length()];</p><p>  mapChar=mapStr.toCharArray();/

106、/轉(zhuǎn)化為一維字符數(shù)組</p><p>  int num=0;//初始化一維數(shù)組下標(biāo)</p><p>  for(int i=0;i<10;i++)</p><p>  for(int j=0;j<11;j++)</p><p><b>  {</b></p><p>  map[i]

107、[j]=Integer.parseInt(String.valueOf(mapChar[num]));</p><p><b>  num++;</b></p><p><b>  }</b></p><p>  /**上層地板地圖*/</p><p>  char[] map2Char=new c

108、har[map2Str.length()];</p><p>  map2Char=map2Str.toCharArray();//先轉(zhuǎn)化成一維字符數(shù)組</p><p>  num=0;//初始化數(shù)組下標(biāo)</p><p>  for(int i=0;i<10;i++)</p><p>  for(int j=0;j<11;j++)

109、</p><p><b>  {</b></p><p>  map2[i][j]=Integer.parseInt(String.valueOf(map2Char[num]));</p><p><b>  num++;</b></p><p>  if(map2[i][j]==3)</p&

110、gt;<p><b>  {</b></p><p>  sumScore++;//箱子的個數(shù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2.2游戲地圖模塊采用2D模擬3D實現(xiàn)2.5D(斜視角)視覺效果

111、</p><p>  整個推箱子游戲采用斜45度視覺效果,在整體上給人以立體仿真的效果,具體實現(xiàn)過程如下:</p><p>  45度視覺效果通常需要采用斜視圖的坐標(biāo)變換,最直接的想法可能就是利用三角函數(shù)。從某種意義上說,俯視角度與正斜視角度的變化就是三角函數(shù)的應(yīng)用,我也見過這類的45度斜視用例。但是,利用cos在Java中進(jìn)行三角函數(shù)的運算,首先速度不能達(dá)到要求,其次圖像銜接度結(jié)果并不理

112、想,結(jié)果可能令圖像有鋸齒狀偏移,所以我并不推薦使用。</p><p><b>  對于如:</b></p><p>  類的菱形斜視圖像,我們可以利用一個簡單的行列運算獲得俯視角度地磚的繪制坐標(biāo)與斜視角度地磚的繪制坐標(biāo)的變換,公式如下:</p><p>  X:2.5D圖形中X軸位置=(目標(biāo)圖像Width/2)*(2D圖形中X-2D圖形中Y)&

113、lt;/p><p>  Y:2.5D圖形中Y軸位置=(目標(biāo)圖像Height/2)*(2D圖形中X+2D圖形中Y)/2</p><p><b>  關(guān)鍵代碼如下:</b></p><p>  com.cslg.pushBox.GameView.java類</p><p>  public void rectDraw(Canva

114、s canvas,int x,int y)</p><p><b>  {</b></p><p>  Path path = new Path();</p><p>  path.moveTo(coordinateXChange(x,y), coordinateYChange(x,y));</p><p>  path

115、.lineTo(coordinateXChange(x+9,y), coordinateYChange(x+9,y));//右上角頂點</p><p>  path.lineTo(coordinateXChange(x+9,y+9),coordinateYChange(x+9,y+9));//右下角頂點</p><p>  path.lineTo(coordinateXChange(x,y

116、+9), coordinateYChange(x,y+9));//左下角頂點</p><p>  path.lineTo(coordinateXChange(x,y), coordinateYChange(x,y));//左上角頂點</p><p>  canvas.drawPath(path, paint);</p><p><b>  }</b&

117、gt;</p><p>  public int coordinateXChange(int x,int y)</p><p><b>  {</b></p><p><b>  int newX;</b></p><p>  newX=(9/2)*(x-y);// X:2.5D圖形中X軸位置=(目

118、標(biāo)圖像Width/2)*(2D圖形中X-2D圖形中Y)</p><p>  return newX;</p><p><b>  }</b></p><p>  public int coordinateYChange(int x,int y)</p><p><b>  {</b></p&g

119、t;<p><b>  int newY;</b></p><p>  newY=(9/2)*(x+y)/2;// Y:2.5D圖形中Y軸位置=(目標(biāo)圖像Height/2)*(2D圖形中X+2D圖形中Y)/2</p><p>  return newY;</p><p><b>  }</b></p&g

120、t;<p>  5.3 角色動畫效果模塊的實現(xiàn)</p><p>  本系統(tǒng)角色的運動分為兩種類型的運動實現(xiàn),一種類型是在未遇到障礙物與箱子的情況下,角色可以上下左右的走動,如圖5-2為角色向下移動的圖示效果,另一種類型是當(dāng)角色在線路上遇到箱子時角色可以推這箱子移動如圖5-3為角色推箱向下移動的效果。</p><p>  圖5-2角色向下運動的圖片</p><

121、;p>  圖5-3角色推箱向下運動的圖片</p><p>  角色換幀圖片以數(shù)組的形式實現(xiàn),分為4個上下左右換幀數(shù)組和4個推箱子上下左右運動的數(shù)組</p><p><b>  關(guān)鍵代碼如下:</b></p><p>  Integer[] manDown=new Integer[]{R.drawable.a1,</p>&l

122、t;p>  R.drawable.a4,</p><p>  R.drawable.a8,</p><p>  R.drawable.a9,};//角色向下移動</p><p>  Integer[] manPushDown=new Integer[]{</p><p>  R.drawable.e1,</p><p

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論