畢業(yè)設(shè)計---吃豆豆手機游戲的設(shè)計與開發(fā)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計說明書</b></p><p>  吃豆豆手機游戲的設(shè)計與開發(fā)</p><p>  學(xué)生姓名: 學(xué)號: </p><p>  學(xué) 院: </p><p>  專 業(yè):

2、 </p><p>  指導(dǎo)教師: </p><p><b>  2010年 6 月</b></p><p>  吃豆豆手機游戲的設(shè)計與開發(fā)</p><p><b>  摘 要</b>&l

3、t;/p><p>  隨著移動電話的普及率越來越高,手機已經(jīng)成為人們生活中的必需品。同時,隨著科技的發(fā)展,移動電話的功能也越來越強,手機娛樂已經(jīng)成為一項充滿發(fā)展前景和商機的產(chǎn)業(yè)。雖然目前手機的處理能力與個人計算機的標(biāo)準(zhǔn)處理能力相比很有限,但是足夠運行一個相對小型的游戲。</p><p>  本文先從Java手機游戲的背景出發(fā),介紹了Java手機游戲的發(fā)展現(xiàn)狀,然后從整體上介紹本吃豆人游戲開發(fā)的

4、模型、結(jié)構(gòu)分析和具體功能實現(xiàn),游戲的接口和運作方式。通過對手機游戲開發(fā),MIDP 2.0,以及JSR-184的研究,采用立即模式,運用深度優(yōu)先遍歷算法來隨機生成游戲地圖,并盡力模擬手機游戲的普遍性形式,實現(xiàn)一個操作簡單,并有一定可玩性的完整3D手機迷宮游戲。</p><p>  關(guān)鍵詞:J2ME;MIDP 2.0;Pac-Man;立即模式(immediate mode);深度優(yōu)先遍歷。</p>&l

5、t;p>  Eat doug cellular phone game design and development.</p><p><b>  Abstract</b></p><p>  With mobile phone penetration rate increasing, mobile phones have become a necessity i

6、n people's lives. At the same time, with the development of technology, the functions of mobile phones more and more strong, mobile entertainment has become a full development prospects and business opportunities in

7、the industry. Although at present the handling capacity of mobile phones and personal computer processing power than the standard is very limited, but enough of a relatively small operation of the g</p><p> 

8、 This article start with the background of Java mobile phone games based on the Java development of mobile phone games, and then a whole game on the Pac-Man model of development, structural analysis and specific function

9、s to achieve, the game's interface and mode of operation. Through the development of mobile games, MIDP 2.0, and JSR-184 research, using the depth-first traversal algorithms to generate random map games, and to try

10、to simulate the universal form of mobile games, to realize a simp</p><p>  KEY WORDS:J2ME; MIDP 2.0; Pac-Man; Immediate mode; The depth-first traversal algorithms</p><p><b>  目 錄</b>

11、;</p><p><b>  1 緒論5</b></p><p><b>  1.1研究背景5</b></p><p><b>  1.2研究內(nèi)容6</b></p><p>  2 手機游戲簡介6</p><p>  2.1 手機游戲的發(fā)展

12、6</p><p>  2.2 手機游戲的特點7</p><p>  2.2.1 手機設(shè)備的優(yōu)點7</p><p>  2.2.2 手機設(shè)備的缺點7</p><p>  2.3 手機游戲的開發(fā)8</p><p>  2.3.1與傳統(tǒng)游戲開發(fā)的區(qū)別8</p><p>  2.3.2

13、揚長避短的開發(fā)策略9</p><p>  3 Java和J2ME概述12</p><p>  3.1 Java概述12</p><p>  3.1.1 Java的歷史12</p><p>  3.1.2 Java語言特點13</p><p>  3.2 J2ME及其體系結(jié)構(gòu)概述14</p>&

14、lt;p>  3.2.1 J2ME簡介14</p><p>  3.2.2 J2ME 體系結(jié)構(gòu)15</p><p>  4 開發(fā)環(huán)境簡介16</p><p>  4.1 Wireless Tool Kit 簡介16</p><p>  4.2 Eclipse 開發(fā)環(huán)境的建立16</p><p>  

15、4.2.1 什么是Eclipse?16</p><p>  4.2.2 Eclipse的主要組成17</p><p>  4.2.3 什么是EclipseME?17</p><p>  4.3 MIDP 2.0簡介18</p><p>  5 游戲的設(shè)計19</p><p>  5.1 任務(wù)介紹19<

16、/p><p>  5.1.1 目標(biāo)19</p><p>  5.1.2 項目背景19</p><p>  5.1.3 運行環(huán)境20</p><p>  5.2 功能需求20</p><p>  5.2.1 游戲菜單設(shè)置20</p><p>  5.2.2 游戲界面的需求20</p&

17、gt;<p>  5.2.3 游戲簡介20</p><p>  5.2.4 手機鍵盤處理事件需求20</p><p>  5.3 游戲的具體設(shè)計20</p><p>  5.3.1 游戲?qū)ёx20</p><p>  5.3.2 游戲目的21</p><p>  5.3.3 設(shè)計思路21<

18、/p><p>  5.3.4 游戲創(chuàng)意21</p><p><b>  6 詳細(xì)設(shè)計21</b></p><p>  6.1程序系統(tǒng)結(jié)構(gòu)21</p><p>  6.2 程序結(jié)構(gòu)、思想22</p><p>  6.2.1 本程序需要解決的主要技術(shù)問題22</p><p&g

19、t;  6.2.2 程序流程22</p><p>  6.3 相關(guān)技術(shù)27</p><p>  6.3.1 內(nèi)存的優(yōu)化27</p><p>  6.3.2 內(nèi)存檢測器27</p><p>  6.3.3 關(guān)于混淆器27</p><p><b>  7 測試28</b></p&g

20、t;<p>  7.1 測試的過程28</p><p>  7.1.1 測試環(huán)境28</p><p>  7.1.2 系統(tǒng)測試28</p><p>  7.2 發(fā)現(xiàn)的BUG及解決情況29</p><p><b>  8 總結(jié)29</b></p><p>  8.1 本程序的

21、總結(jié)和展望29</p><p><b>  8.2 感想29</b></p><p>  參 考 文 獻31</p><p><b>  致 謝33</b></p><p><b>  1 緒論</b></p><p><b>  1

22、.1研究背景</b></p><p>  JAVA自從20世紀(jì)90年代早期誕生以來,以其強大的功能迅速為廣大程序員們所接受。從2001年開始,日本的國內(nèi)的移動電話開始搭載Java。使用本來就是一種程序語言的Java之后,就可以在移動電話上完成以往靜態(tài)的HTML內(nèi)容所無法達成的計算處理、數(shù)據(jù)存儲、與服務(wù)器的通信等等。如果能利用Java上其他豐富功能,那么就可以實現(xiàn)更多的功能。</p>&l

23、t;p>  游戲作為人們?nèi)粘I畹囊粋€重要的娛樂項目,也帶動了巨大的游戲相關(guān)產(chǎn)業(yè)市場的發(fā)展。游戲平臺從游戲機、電視游戲,到pc游戲,到手機游戲,中間經(jīng)歷了很多的技術(shù)的變革。隨著新技術(shù)的發(fā)展和人們生活水平的提高,手機開始逐漸普及,手機以其小巧便捷,方便的特性成為人們的必備通訊工具。而基于手機平臺的手機游戲也就擁有了巨大的市場空間,隨著3g的開通和應(yīng)用,手機游戲必將迎來新的一輪游戲熱潮!</p><p>  隨

24、著手機游戲的發(fā)展,國內(nèi)外各大開發(fā)商紛紛運用Java進行手機游戲開發(fā)。J2ME作為一種基于Java的便攜設(shè)備開發(fā)平臺,在各大手機開發(fā)公司得到了廣泛應(yīng)用。</p><p><b>  1.2研究內(nèi)容</b></p><p>  本課題擬研究基于J2ME的手機游戲開發(fā)技術(shù)以及其特點,具體研究內(nèi)容如1、手機游戲開發(fā)以及J2ME的基本理論和J2ME類庫的使用;2、J2ME體

25、系結(jié)構(gòu)的研究;3、MIDP移動信息設(shè)備簡表的研究;    (1)、MIDP的目標(biāo)硬件環(huán)境; (2)、MIDP應(yīng)用程序;    (3)、CLDC和MIDP庫中的類。4、J2ME API的研究;  (1)MIDlet應(yīng)用程序的研究;  (2)MIDlet的類庫研究;  (3)各事件發(fā)生器的應(yīng)用。5、開發(fā)工

26、具的應(yīng)用和開發(fā)環(huán)境的設(shè)置。 其中MIDP移動信息設(shè)備簡表的研究和J2ME API的研究為重點,本課題將通過一個具體的手機游戲的開發(fā)來研究</p><p><b>  2 手機游戲簡介</b></p><p>  2.1 手機游戲的發(fā)展</p><p>  在地鐵、機場和車站,我們可以看見越來越多的人低頭玩著手機游戲伴隨不斷變化的表情

27、或皺眉或微笑。當(dāng)我們購買新的手機,也會發(fā)現(xiàn)越來越多嵌入手機系統(tǒng)的娛樂功能,特別是各種精彩的游戲。手機已經(jīng)成為許多人生活的一部分,人們也漸漸習(xí)慣將手機作為新的娛樂工具。越來越多的人陶醉于手機游戲帶來的新鮮體驗。由于手機的便攜性,使得手機游戲隨著手機的普及在全世界風(fēng)行起來。</p><p>  手機游戲的興起與傳統(tǒng)游戲的發(fā)展演變之路不同。這種差別已不僅僅表現(xiàn)為</p><p>  游戲終端設(shè)備

28、的差異,而是體現(xiàn)在游戲傳輸載體以及游戲參與方式的變革。技</p><p>  術(shù)融合帶來游戲跨平臺的發(fā)展,通過網(wǎng)絡(luò),個人電腦、大型游戲機、家用游戲</p><p>  機、交互電視、手持終端設(shè)備都可以進行互動交流。不同的設(shè)備可以通過網(wǎng)絡(luò)</p><p>  運行相同的游戲,游戲按照終端設(shè)備分類的界線越來越模糊。這樣的變革源于</p><p>

29、  技術(shù)進步,也創(chuàng)造出無限商機。</p><p>  2.2 手機游戲的特點</p><p>  2.2.1 手機設(shè)備的優(yōu)點</p><p><b>  龐大的潛在用戶群</b></p><p>  全球在使用的移動電話已經(jīng)超過10億部,而且這個數(shù)字每天都在不斷增加。</p><p>  在除美

30、國之外的各個發(fā)達國家,手機用戶都比計算機用戶多。手機游戲潛在</p><p>  的市場比其他任何平臺,比如PlayStation和GameBoy都要大。</p><p><b>  便攜性</b></p><p>  在控制臺游戲時代,GameBoy熱銷的一個原因就是便攜性——人們可以隨時</p><p>  隨地沉浸

31、在自己喜歡的游戲中。和游戲控制臺或者PC相比,手機雖然可能不</p><p>  是一個理想的游戲設(shè)備,但畢竟人們總是隨時隨身攜帶,這樣手機游戲很可</p><p>  能成為人們消遣時間的首選。</p><p><b>  支持網(wǎng)絡(luò)</b></p><p>  因為手機是網(wǎng)絡(luò)設(shè)備,在一定限制因素下可以實現(xiàn)多人在線游戲。

32、</p><p>  2.2.2 手機設(shè)備的缺點</p><p><b>  屏幕小</b></p><p>  雖然手機屏幕的分辨率持續(xù)提高,并且彩屏已經(jīng)成為標(biāo)準(zhǔn),但是屏幕尺寸</p><p>  依然很小,畢竟我們沒有人樂意拿著磚塊一樣大的手機。另外,不同手機的</p><p>  屏幕大小有

33、差異,而用戶總是希望使用自己特定的手機上所有可用的屏幕空</p><p>  間,這樣開發(fā)者不可避免需要為不同的手機移植優(yōu)化同一款游戲。</p><p>  有限的顏色和聲音支持</p><p>  雖然市場上彩屏手機所占份額越來越大,但手機上顯示的顏色在質(zhì)量和數(shù)</p><p>  量上與PC機上還是有很大的距離。至于音效,主要的決定因素是

34、頻響、帶寬、</p><p>  合弦和功率,手機現(xiàn)有設(shè)備的播放效果還很不理想。</p><p><b>  應(yīng)用程序大小限制</b></p><p>  雖然在一些新款智能手機上可以運行幾兆字節(jié)的應(yīng)用程序,但大部分手機</p><p>  只有很小的內(nèi)存空間供應(yīng)用程序使用。此外,對可運行的應(yīng)用程序的大小還</p&

35、gt;<p>  有來自運營商的其他限制。</p><p><b>  等待時間長</b></p><p>  等待時間(機器發(fā)出請求和接到響應(yīng)之間所花費的時間)在計算機上是</p><p>  以微秒計算;在有線因特網(wǎng)上是以毫秒計算;而在無線網(wǎng)絡(luò)上則要以秒計算。</p><p>  等待時間長是網(wǎng)絡(luò)游戲中

36、一直存在的一個問題。無線網(wǎng)絡(luò)等待時間過長,就</p><p>  導(dǎo)致無法有效地開發(fā)多人快速動作游戲;然而基于回合制的多人游戲卻是可</p><p><b>  行的。</b></p><p>  還有一種特殊情況,使用藍(lán)牙技術(shù)或其他無線局域網(wǎng)技術(shù)的手機可以和</p><p>  附近的藍(lán)牙設(shè)備在因特網(wǎng)等待時間下(一般2

37、00ms~400ms)通信。這樣,使用</p><p>  具備該功能的智能手機,用戶就可以和附近的移動用戶一起玩多人快速動作</p><p><b>  游戲了。</b></p><p><b>  可中斷性是關(guān)鍵</b></p><p>  當(dāng)需要接聽或撥打電話時,我們通常會中斷進行中的游戲,游

38、戲程序必</p><p>  須能夠暫停和繼續(xù)。這樣的暫停既不能造成游戲問題(例如,游戲者在打電</p><p>  話的時候老怪仍然在移動,打死玩家扮演的角色,導(dǎo)致玩家輸?shù)粲螒颍?,也?lt;/p><p>  可以導(dǎo)致內(nèi)存溢出。這些都是開發(fā)者需要在設(shè)計時給予充分考慮的問題。</p><p>  2.3 手機游戲的開發(fā)</p>&l

39、t;p>  2.3.1與傳統(tǒng)游戲開發(fā)的區(qū)別</p><p><b>  1. 團隊規(guī)模</b></p><p>  開發(fā)傳統(tǒng)的PC機游戲或者控制臺游戲,一般需要12到30人的開發(fā)團隊。</p><p>  因為大部分移動游戲規(guī)模比控制臺游戲小,所以一般情況下只需要3到5人的開發(fā)團隊,有的時候甚至設(shè)計者和編程者可以是同一個人。</p&

40、gt;<p><b>  2. 開發(fā)預(yù)算</b></p><p>  按照美國游戲產(chǎn)業(yè)的一般開發(fā)成本,傳統(tǒng)游戲的預(yù)算往往在一百萬美元</p><p>  到五百萬美元之間,而大部分移動游戲的預(yù)算則通常低于一百萬美元,在中國,這個數(shù)字將更低。由于移動電話有限的顯示能力和對應(yīng)用程序大小的限制,使得移動游戲的開發(fā)不必如傳統(tǒng)游戲那樣投入大量的人力財力。從某種意義

41、上來說,這也算是一個優(yōu)勢。</p><p><b>  3. 開發(fā)周期</b></p><p>  開發(fā)傳統(tǒng)游戲一般需要兩到三年,而大部分移動游戲可以在幾個月之內(nèi)開發(fā)完畢。換句話說,開發(fā)商只要有一個小型的開發(fā)團隊和一個較小的預(yù)算,就可以催生出一款專業(yè)品質(zhì)的移動游戲。</p><p><b>  4. 網(wǎng)絡(luò)設(shè)備</b><

42、;/p><p>  移動電話的特性決定它是一種網(wǎng)絡(luò)設(shè)備,雖然處理能力甚至比不上老式計算機,但是它的網(wǎng)絡(luò)性能卻更加出眾,并且可支持多人游戲。</p><p><b>  5. 開放標(biāo)準(zhǔn)</b></p><p>  控制臺游戲的開發(fā)商需要取得控制臺游戲廠商的授權(quán)和支持,需要支付</p><p>  給他們“平臺使用費”。而在無線

43、應(yīng)用程序世界(如同在PC游戲開發(fā)中一樣),開發(fā)者則可以免費地開發(fā)任何款式的游戲。另外,這些移動游戲開發(fā)平臺標(biāo)準(zhǔn)是開放的,可供開發(fā)者免費取得。</p><p><b>  6. 推廣方式</b></p><p>  對于傳統(tǒng)的游戲,玩家通常是在軟件市場上購買;而移動游戲的推廣,則主要是由用戶從移動門戶網(wǎng)站下載并安裝。用戶可以通過無線網(wǎng)絡(luò)直接下載游戲;或者下載應(yīng)用程序到計

44、算機中,然后通過數(shù)據(jù)線傳送到手機。因此,移動游戲的銷售渠道不同于傳統(tǒng)游戲,用戶一般通過移動運營商的游戲菜單、手機廠商預(yù)裝在手機中的游戲菜單或者無線應(yīng)用程序門戶網(wǎng)站上找到手機游戲。</p><p>  2.3.2 揚長避短的開發(fā)策略</p><p>  前面討論了手機游戲的特點,從中可以看到,在開發(fā)手機游戲的時候需要充分發(fā)揮它的優(yōu)點,同時盡量解決或回避它自身的局限性。下面列出一些供開發(fā)者考

45、慮的因素:</p><p>  避免過多的等待時間。這對單人游戲來說很容易實現(xiàn),但在多人游戲中開發(fā)</p><p>  者就需要解決等待時間長的問題。</p><p>  使用網(wǎng)絡(luò)。網(wǎng)絡(luò)不一定對于每款手機游戲都是必需的,但是玩家往往喜歡有</p><p>  與人競爭的感覺,即使只有一個排行榜,也會使游戲更富有吸引力。經(jīng)驗表</p>

46、;<p>  明,帶有交互性、協(xié)作性的游戲方式會讓游戲更加受歡迎。</p><p>  短的游戲時間。手機用戶遲早要打電話或者接電話,而且沒有人愿意把所有</p><p>  的電量都消耗在游戲上。通常每一回合游戲應(yīng)該保持在五分鐘之內(nèi),當(dāng)然這</p><p>  不是說一個完整的游戲必須在五分鐘內(nèi)結(jié)束,而是允許用戶中斷、保存和繼</p>

47、<p>  續(xù)游戲。玩家有自己的時間表,所以作為開發(fā)者應(yīng)尊重用戶的選擇權(quán),方便</p><p>  用戶在任何想玩的時候玩,想中斷就中斷,而不能要求用戶遵循既定的時間</p><p><b>  表。</b></p><p>  盡可能地讓游戲保持小型。我們發(fā)現(xiàn),很多游戲玩家仍然熱衷于20世紀(jì)80</p><p&g

48、t;  年代優(yōu)秀的小游戲。在某些方面,技術(shù)的限制迫使我們把更多的注意力放到</p><p><b>  小型的游戲中去。</b></p><p>  做好支持多種手機的準(zhǔn)備。作為開發(fā)者,我們至少需要使游戲支持不同的屏</p><p>  幕尺寸,有時還要利用特定手機的性能。由于不同的手機具有不同的硬件特</p><p>

49、  性,通常同一款游戲需要開發(fā)不同的版本。</p><p>  為國際化做好準(zhǔn)備。移動電話在世界范圍內(nèi)的應(yīng)用越來越廣泛,產(chǎn)品要進入</p><p>  新的市場往往需要在語言等方面本地化,這在開發(fā)的時候需要做全盤考慮。</p><p>  上面討論了開發(fā)者應(yīng)注意的若干因素。以第一個因素為例,如何處理等待時</p><p>  間長是眾多移動游

50、戲開發(fā)者面對的難題。那么等待時間長究竟對移動游戲有</p><p>  怎樣的影響呢?下面專門進行討論。</p><p>  單人游戲不需要使用網(wǎng)絡(luò),除非是把積分發(fā)送到排行榜或允許游戲者瀏覽</p><p>  排行榜。這種網(wǎng)絡(luò)通信對于游戲影響不大,幾秒鐘的延遲不會引起用戶的反感,因此實際中的大多數(shù)單人游戲不存在等待時間的困擾。</p><p&g

51、t;  在“多玩家”單人游戲中,玩家感覺他們是在玩一個多人游戲。但事實上每個人只是面對相同的游戲,僅僅在整個游戲結(jié)束或者回合結(jié)束時比較分?jǐn)?shù)。當(dāng)一個玩家加入游戲時,他告訴其他人自己的ID,然后開始玩單人游戲。服務(wù)器或者給每個游戲者發(fā)送一個包含相同消息的游戲狀態(tài)文件,或者發(fā)送一個來自構(gòu)造啟動游戲狀態(tài)的客戶軟件的代碼。當(dāng)一個玩家結(jié)束游戲后,游戲者的客戶端程序?qū)⑺牡梅痔峤坏椒?wù)器。當(dāng)所有的游戲者都完成游戲后(或者超過某個時間以后),服務(wù)器告訴

52、每個游戲者誰取得了最高分,以及每個游戲者取得的分?jǐn)?shù)。這種風(fēng)格的游戲在因特網(wǎng)上相當(dāng)成功,比如AOL(美國在線)最受歡迎的游戲Slingo就是一個很好的例子。因為只有在服務(wù)器開始或者結(jié)束游戲的時候才需要交換消息,所以等待時間只有在這些時候才成為需要考慮的問題。</p><p>  “多玩家”多人游戲可以分為兩類:一類是基于回合的游戲,另一類是</p><p><b>  “即時動作”

53、游戲。</b></p><p>  對基于回合的游戲,游戲者進入他們的回合,并在接收結(jié)果之前需要等待一段時間。這種情況下,幾秒鐘的延遲是可以容忍的。常見的有兩種基于回合的游戲:第一種是輪流游戲——在游戲中每個游戲者按次序進入回合,如象棋、紅心大戰(zhàn)這樣的經(jīng)典游戲。這種游戲的缺點是游戲者在重新進入回合之前無事可做。因此,通常需要限制這種游戲的游戲者數(shù)目,這樣延遲就不會長得讓人難以忍受。2~4個游戲者是比較

54、理想的情況。第二種是同時動作游戲。在一個同時動作游戲中,每個游戲者獨立計劃自己的行動。當(dāng)一個游戲者就緒時,他發(fā)送指令到服務(wù)器。當(dāng)服務(wù)器從所有的游戲者那里都接到指令后,分解回合,再把結(jié)果發(fā)送到每一個游戲者那里。</p><p>  “即時動作”游戲往往可能會持續(xù)很長時間(幾天、幾個星期、幾個月甚至到永遠(yuǎn))。游戲者可以在任何時候進入游戲,執(zhí)行游戲中的動作。在一些游戲中,他們只能與其他同時進入游戲的用戶交互;在另一些游

55、戲中,他們也許能與任何其他游戲者交互,即使這些游戲者已經(jīng)離線。</p><p>  由于手機硬件設(shè)備的諸多限制和性能差異,在游戲的開發(fā)和制作過程中無法天馬行空般地進行創(chuàng)作,不得不綜合考慮多方因素的平衡。下面列出的是一些關(guān)鍵的要素,這些要素都直接影響游戲運行的最終效果。</p><p><b>  1. 分辨率</b></p><p>  手機的

56、屏幕大小各有不同,從80×30像素到320×240像素,就好比</p><p>  在PC發(fā)展過程中的CGA、EGA乃至VGA。分辨率的高低直接影響游戲中造型的尺寸及表現(xiàn)力,這點每個設(shè)計人員都一定有所體會。另外,由于手機型號及操作系統(tǒng)的多樣性,導(dǎo)致了同一款游戲不能不加改動地在不同的手機上運行。因此,美工設(shè)計人員要在設(shè)計之初考慮屏幕的自適應(yīng)問題,比如在128×128分辨率下與200&#

57、215;200的分辨率下,如何做到不更換圖片而顯示出同樣的畫面效果。</p><p><b>  2. 色彩數(shù)量</b></p><p>  目前手機所能提供的色彩數(shù)量也是限制美工人員發(fā)揮的一個重要瓶頸。</p><p><b>  3. 亮度</b></p><p>  由于獨特的發(fā)光原理,液晶屏

58、幕無法達到傳統(tǒng)顯示器的亮度,這樣就導(dǎo)致很多色彩豐富的圖案在強光下不能顯示出原有的效果,當(dāng)手機在戶外使用時表現(xiàn)得尤其明顯。因此設(shè)計人員在設(shè)計游戲圖片時一定要考慮到這一點,不能將色彩對比度設(shè)置得過于接近。另外圖片設(shè)計一定要簡潔明快,避免過小的圖片。</p><p><b>  4. 顯示速度</b></p><p>  在常使用的手機中,很多由于芯片運算速度太低,導(dǎo)致動畫

59、不流暢,有時甚至低于10幀/秒,這對于動畫游戲而言是致命的。而且液晶屏幕本身也有顯示速度問題,比如有的手機有影像“拖尾”的現(xiàn)象,這種情況在實際游戲中很容易造成玩家的視覺疲勞。我們通常采取局部刷幀或者避免全屏幕動畫的方法來盡量達到預(yù)期效果。</p><p><b>  5. 電力</b></p><p>  由于手機配備的是液晶屏幕,高亮度的像素顯示會比一般像素顯示耗電

60、量增大,例如白色背景就要比黑色背景消耗更多的電池能量。因此對于手機游戲而言,要盡可能節(jié)省玩家的電池,這也是人性化設(shè)計的體現(xiàn)。</p><p>  3 Java和J2ME概述</p><p>  3.1 Java概述</p><p>  3.1.1 Java的歷史</p><p>  Java,是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語

61、言,由Sun公司的詹姆斯·高斯林(James Gosling)等人于1990年代初開發(fā)。它最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語言,來解決諸如電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊問題。由于這些智能化家電的市場需求沒有預(yù)期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計算機網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,在1995年5月以“Java”的名稱正式發(fā)

62、布了。Java伴隨著互聯(lián)網(wǎng)的迅猛發(fā)展而發(fā)展,逐漸成為重要的網(wǎng)絡(luò)編程語言。</p><p>  Java編程語言的風(fēng)格十分接近C++語言。繼承了C++ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間。在Java SE 1.5版本中Ja

63、va又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。</p><p>  Java不同於一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯成字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,這同時也在一定程度上降低了Java程序的運行效率。但在J2SE1.4.

64、2發(fā)布后,Java的執(zhí)行速度有了大幅提升。</p><p>  與傳統(tǒng)程序不同Sun公司在推出Java之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計的Java開發(fā)公司被要求所設(shè)計的Java軟件必須相互兼容?!癑ava語言靠群體的力量而非公司的力量”是Sun公司的口號之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。</p><p>  3.1.2 Java

65、語言特點</p><p><b>  1.平臺無關(guān)性</b></p><p>  Java引進虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺之間的Java接口,Java的數(shù)據(jù)類型和機器無關(guān)。</p><p><b>  2.安全性</b></p><p>  Java的編程類似C++,但舍棄了C++的指針

66、對存儲器地址的直接操作,程序運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針侵入系統(tǒng)。他提供了安全管理器,防止程序的非法訪問。</p><p><b>  3.面向?qū)ο?lt;/b></p><p>  Java吸收了C++面向?qū)ο蟮母拍睿瑢?shù)據(jù)封裝于類中,實現(xiàn)了程序的簡潔性和便于維護性,使程序代碼可以只需一次編譯就可反復(fù)利用。</p><p>

67、<b>  4.分布式</b></p><p>  Java建立在TCP/IP網(wǎng)絡(luò)平臺上,提供了用HTTP和FTP協(xié)議傳送和接受信息的庫函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。</p><p><b>  5.健壯性</b></p><p>  Java致力與檢查程序在編譯和運行時的錯誤,并自動回收內(nèi)存,減少

68、了內(nèi)存出錯的可能性。Java取消了C語言的結(jié)構(gòu)、指針、#define語句、多重繼承、goto語句、操作符、重載等不易掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。</p><p>  3.2 J2ME及其體系結(jié)構(gòu)概述</p><p>  3.2.1 J2ME簡介</p><p>  J2ME(Java 2 Micro Edition)是Java 2的一個組成部分

69、,它與J2SE、J2EE并稱。根據(jù)Sun的定義:J2ME是一種高度優(yōu)化的Java運行環(huán)境,主要針對消費類電子設(shè)備的,例如蜂窩電話和可視電話、數(shù)字機頂盒、汽車導(dǎo)航系統(tǒng)等等。J2ME技術(shù)在1999年的JavaOne Developer Conference大會上正式推出,它將Java語言的與平臺無關(guān)的特性移植到小型電子設(shè)備上,允許移動無線設(shè)備之間共享應(yīng)用程序。</p><p>  J2ME 在設(shè)計其規(guī)格的時候,遵循著

70、「對于各種不同的裝置而造出一個單一的開發(fā)系統(tǒng)是沒有意義的事」這個基本原則。于是 J2ME 先將所有的嵌入式裝置大體上區(qū)分為兩種 :一種是運算功能有限、電力供應(yīng)也有限的嵌入式裝置(比方說PDA 、手機);另外一種則是運算能力相對較佳、并且在電力供應(yīng)上相對比較充足的嵌入式裝置 (比方說冷氣機、電冰箱、電視機上盒 (set-top box))。因為這兩種型態(tài)的嵌入式裝置,所以Java 引入了一個叫做Configuration 的概念,然后把上

71、述運算功能有限、電力有限的嵌入式裝置定義在Connected Limited Device Configuration(CLDC)規(guī)格之中;而另外一種裝置則規(guī)范為 Connected Device Configuration(CDC)規(guī)格。也就是說, J2ME 先把所有的嵌入式裝置利用Configuration 的概念區(qū)隔成兩種抽象的型態(tài)。 </p><p>  與J2SE和J2EE相比,J2ME總體的的運行環(huán)

72、境和目標(biāo)更加多樣化,但其中每一種產(chǎn)品的用途卻更為單一,而且資源限制也更加嚴(yán)格。為了在達到標(biāo)準(zhǔn)化和兼容性的同時盡量滿足不同方面的需求,J2ME的架構(gòu)分為Configuration、Profile和Optional Packages(可選包)。它們的組合取舍形成了具體的運行環(huán)境。 </p><p>  3.2.2 J2ME 體系結(jié)構(gòu)</p><p>  當(dāng)前很多資料上都將J2ME的體系劃分為3

73、個,即:Java虛擬機,配置和和簡表。對于各層次的詳細(xì)解釋和功能如下:</p><p><b>  Java虛擬機</b></p><p>  在J2ME中提供了2中java虛擬機。由于JVM是java代碼運行時必須的,只有任何設(shè)備上有了JVM才能很好的解釋“一次編譯,到處運行”的關(guān)鍵技術(shù)。那么在嵌入式或移動設(shè)備中也需要JVM作為操作系統(tǒng)和java應(yīng)用程序間的接口。但

74、是由于內(nèi)存的限制,嵌入式設(shè)備的JVM也要特殊提供。</p><p>  J2ME中提供的JVM分為CVM和KVM,是JVM的縮減版,KVM比CVM功能</p><p><b>  稍弱。</b></p><p>  CVM(Compact Virtual Machine),最初是這種解釋的,但是后來對于C沒有任何意義了。只是CVM虛擬機主要運行

75、在存儲量較大的嵌入式設(shè)備,比如可視電話、POS收款機等。</p><p>  KVM是最小運行時環(huán)境的一部分,也就是用于CPU和內(nèi)存較小的設(shè)備,這里的K是千字節(jié)的意思。KVM主要用于移動電話,個人數(shù)字助理(PAD)等小型設(shè)備。</p><p><b>  J2ME配置簡介</b></p><p>  當(dāng)前提供的J2ME配置有兩類,CDC和CLD

76、C。</p><p>  CDC(Connection Device Configuration)連接設(shè)備配置主要用于存儲量較大,內(nèi)存2MB以上的設(shè)備中,大多用于CVM虛擬機。其用戶接口較多。網(wǎng)絡(luò)寬帶有限,所以有很多不同的簡表。而其最大的特點就是支持浮點數(shù)。包含了所有CLDC中定義類和接口。</p><p>  CLDC(Connection Limited Device Configur

77、ation)有限連接設(shè)備設(shè)置。主要用于小型的資源較小的設(shè)備中,針對內(nèi)存小于512Kb的嵌入式系統(tǒng)。采用KVM虛擬機。其特點是很多J2SE的類和接口沒有實現(xiàn),最大的特點就是不支持浮點數(shù)。</p><p>  MIDP(Mobile Information Device Profile)移動信息設(shè)備簡表</p><p>  這里主要針對的是CLDC設(shè)備。</p><p>

78、;  包含3個生命周期和事件處理等機制。</p><p>  Paused 狀態(tài):程序處于暫停狀態(tài),方法:pauseAPP();</p><p>  Actived狀態(tài):程序處于運行活動狀態(tài),方法:startAPP();</p><p>  Destroy狀態(tài):程序運行銷毀結(jié)束前的狀態(tài),方法:DestroyApp();</p><p>  

79、MIDP包含其他事件處理狀態(tài)和機制。</p><p><b>  4 開發(fā)環(huán)境簡介</b></p><p>  4.1 Wireless Tool Kit 簡介</p><p>  WTK是WoldTookKit的簡稱,由美國的Scene8公司開發(fā),目前的最高板本是Release10.0。它是一種在OpenGL或DirectX的基礎(chǔ)上開發(fā)的更

80、高層次的實時3D圖形驅(qū)動系統(tǒng)。WTK能在Windows,UNIX,Linux等操作系統(tǒng)上運行。</p><p>  WTK是一個C函數(shù)庫,大約有1000個C函數(shù),分別用來組織管理虛擬場景,加載、渲染模型文件,提供了豐富的2D和3D字庫,直接支持?jǐn)?shù)十種常用輸入/輸出設(shè)備,提供三維立體聲,實現(xiàn)網(wǎng)絡(luò)分布式系統(tǒng)設(shè)計,支持多CPU系統(tǒng)。WTK為開發(fā)這屏蔽了很多開發(fā)這并不關(guān)心的細(xì)節(jié),例如要開發(fā)一個通過6自由度空間球漫游樓房的

81、系統(tǒng),模型文件是用Creator制作的,開發(fā)者并不關(guān)心空間球和計算機是怎么通訊的,也不關(guān)心怎么把*.flt文件轉(zhuǎn)化為OpenGL內(nèi)渲染的小面片,更不關(guān)心怎么計算每個每個面片的法向等等,開發(fā)者只關(guān)心怎么把這個場景組建起來,運行起來。WTK讓開發(fā)者完成了所有那些開發(fā)這不關(guān)心的事情,并提供了一個很好機制讓開發(fā)者組建、管理它的虛擬場景。</p><p>  4.2 Eclipse 開發(fā)環(huán)境的建立</p>

82、<p>  4.2.1 什么是Eclipse?</p><p>  Eclipse是一個開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴展開發(fā)平臺,也是目前最著名的開源項目之一,IBM在最近幾年里也一直在大力支持該項目的發(fā)展,目標(biāo)是將其做成用以替代IBM Visual Age for Java(簡稱IVJ)的下一代IDE開

83、發(fā)環(huán)境,并于2001年11月宣布投入4千萬美元資金到該項目的研發(fā)。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。其未來的目標(biāo)不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。</p>

84、;<p>  4.2.2 Eclipse的主要組成</p><p>  Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成--Eclipse Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PD

85、E用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。  Eclipse SDK(軟件開發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起

86、提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟</p><p>  4.2.3 什么是EclipseME?</p><p>  EclipseME作為Eclipse一個插件,致力于幫助開發(fā)者開發(fā)J2ME應(yīng)用程

87、序。EclipseME并不為開發(fā)者提供無線設(shè)備仿真器,而將各手機廠商的實用仿真器緊密連接到Eclipse開發(fā)環(huán)境中,為開發(fā)者提供一種無縫統(tǒng)一的集成開發(fā)環(huán)境。</p><p>  4.3 MIDP 2.0簡介</p><p>  MIDP即移動信息簡表(Mobile Information Device Profile)針對的是移動信息設(shè)備,或者體積較小、能力有限的手持設(shè)備(MID),這些設(shè)

88、備的共性是具有用戶接口即屏幕和輸入機制。MIDP目標(biāo)設(shè)備的典型例子就是手機。</p><p>  MIDP 2.0相較之前的1.0版本,加強了對用戶接口、多媒體和游戲功能、網(wǎng)絡(luò)連接功能的支持,主要包括以下幾個方面:</p><p>  MIDP 2.0提供的游戲API使得游戲本身可以充分地利用設(shè)備自身的圖形處理功能。它的出現(xiàn)大大簡化了J2ME游戲的開發(fā)工作,同時也使開發(fā)者能夠更多地控制程序

89、的圖形處理功能。</p><p>  在通信方面,MIDP 1.0僅支持HTTP,MIDP 2.0增加了對HTTPS、報文、Socket通信以及串口通信的支持。此外,MIDP 2.0還支持Push體系架構(gòu),這樣,手機能夠收到來自服務(wù)器的報警、消息或者廣播,并根據(jù)要求啟動手機上的應(yīng)用程序進行操作。</p><p>  支持0ver-The-Air(OTA)Provisioning,它使用戶能

90、夠動態(tài)地部署和更新移動設(shè)備上的應(yīng)用程序。</p><p>  MIDP OTA Provisioning模型為移動服務(wù)提供商提供了單一、標(biāo)準(zhǔn)地部署MIDP應(yīng)用程序的途徑。該模型已經(jīng)被眾多技術(shù)領(lǐng)先的移動設(shè)備制造商和服務(wù)提供商所采納。</p><p>  ? MIDP 2.0增加了強大的“端到端”安全模型。一方面,MIDP 2.0支持HTTPS,可以對所傳輸?shù)馁Y料進行加密;另一方面,MIDP

91、 2.0采用了和MIDP 1.0不同的安全機制,采用安全與來確保未經(jīng)授權(quán)的MIDlet套件無法訪問受權(quán)限控制的數(shù)據(jù)、應(yīng)用程序以及其他網(wǎng)絡(luò)和設(shè)備資源。</p><p><b>  5 游戲的設(shè)計</b></p><p><b>  5.1 任務(wù)介紹</b></p><p><b>  5.1.1 目標(biāo)</b&

92、gt;</p><p>  項目實現(xiàn)了玩家(吃豆人)躲避NPC,并吃掉豆子的所有基本功能,同時,為了滿足人們的個人需求我們加入了很多游戲個性化效果。我們加入了各種背景圖片以供選擇,從而實現(xiàn)畫面的美觀、簡潔、有吸引力;加入了音樂、音效和Flash動畫效果等,從而使游戲從感官上更加吸引玩家;加入了自主設(shè)置鍵盤的操作,從而使操作更加簡單,更容易上手,且不易失誤。我們會力爭使游戲具有可靠性,安全性,完整性,靈活性,開發(fā)出

93、一款更加適合人們需求的吃豆子手機游戲。</p><p>  5.1.2 項目背景</p><p>  《吃豆人》(Pac-Man)是一部由同名街機游戲移植至Atari 2600平臺的游戲,最早由南夢宮公司于1980年在街機上推出,后由雅達利公司于1982年3月中旬發(fā)售Atari 2600版。雅達利公司在當(dāng)年3月3日舉辦了雅達利國際吃豆人節(jié),為本作的發(fā)售造勢?! ≡诋?dāng)時,Atari 260

94、0(以下簡稱2600)是世界上最受歡迎的家用游戲主機,而《吃豆人》又是世界上最受歡迎的街機游戲,因此雅達利熱心地推銷了本游戲的2600版。但是由于移植效果很不完美,本作在發(fā)售后便廣受批評,實際銷量遠(yuǎn)小于預(yù)期值,即使是購買了本游戲的玩家對游戲也頗有微辭。與《E.T.外星人》以及其他一些來自第三方制作人的劣質(zhì)游戲(如《卡斯特的復(fù)仇》)一道,《吃豆人》成為導(dǎo)致1983年北美家用機市場崩潰的誘因之一。因為這些游戲摧毀了普通用戶對雅達利、甚至是對

95、整個家用機游戲產(chǎn)業(yè)的忠誠度?! ”居螒虻土拥囊浦残Ч粴w咎于雅達利公司市場部門過于急切地試圖提早發(fā)售游戲。雅達利要求其主要的程序員之一托德·福萊耶(Tod Frye)負(fù)責(zé)移植游戲,后者給他們拿出了一個事先做好的不完整版本。在試圖趕在1981年圣誕節(jié)檔期讓游戲上市未果后</p><p>  5.1.3 運行環(huán)境</p><p>  開發(fā)環(huán)境:windows(XP/vista/wi

96、n7)+Eclipse+EclipseMe+WTK</p><p><b>  開發(fā)語言:java</b></p><p>  CLDC: 1.0</p><p>  MIDP: 1.0</p><p>  應(yīng)用程序類型:jar打包文件</p><p>  文檔和代碼版本管理:Microsof

97、t Visual SourceSafe 2005</p><p><b>  5.2 功能需求</b></p><p>  5.2.1 游戲菜單設(shè)置</p><p>  按游戲界面的"開始"菜單來開始游戲;"暫停"菜單暫停游戲; "結(jié)束"菜單結(jié)束游戲;"設(shè)置"菜

98、單對游戲進行設(shè)置,實現(xiàn)個性化設(shè)置。</p><p>  5.2.2 游戲界面的需求</p><p>  游戲界面需求:設(shè)計良好的游戲界面可以讓玩家充分感受到游戲帶來的娛樂性,游戲的背景色是黑色,有4種不同顏色的NPC.</p><p>  5.2.3 游戲簡介</p><p>  該游戲共有三個等級:初級、中級、高級。 "級數(shù)&qu

99、ot;為游戲當(dāng)前等級,當(dāng)分?jǐn)?shù)達到當(dāng)前等級的最高值,等級會提升、速度會加快。玩家可以任意選擇級別,當(dāng)分?jǐn)?shù)到達晉級分?jǐn)?shù)(當(dāng)前等級與下一級的分?jǐn)?shù)差)后自動晉級,分?jǐn)?shù)繼續(xù)累加。游戲結(jié)束時,如果得分進入前八名,英雄榜將記錄你的姓名、分?jǐn)?shù),并為你排名。</p><p>  5.2.4 手機鍵盤處理事件需求</p><p>  手機鍵盤處理事件需求:游戲開始時,可通過手機鍵的方向鍵(上、下、左、右鍵)對

100、該吃豆人進行方向的移動,來躲避NPC的追擊,并吃掉途中的豆子。</p><p>  5.3 游戲的具體設(shè)計</p><p>  5.3.1 游戲?qū)ёx</p><p>  吃豆游戲的規(guī)則是:黃色的大豆子代表自己,你需要把畫面內(nèi)所有黃色的小豆豆都吃掉,但又不能掉進陷阱,而同時又有大的綠色,橙色,粉色,紅色的敵人追殺你,如果你實在逃不出敵人的魔掌,你可以吃白色的能量球,那

101、么你就會在一定時間內(nèi)處于無敵模式,可以吃掉陷阱和敵人!如果全部黃色的小豆豆都吃掉了,那么恭喜你,您過關(guān)了!</p><p>  5.3.2 游戲目的</p><p>  通過設(shè)計對各個功能的設(shè)定,研究出適合人們玩的一款游戲</p><p>  5.3.3 設(shè)計思路</p><p>  游戲的設(shè)計思路:游戲創(chuàng)意—游戲規(guī)劃—程序?qū)崿F(xiàn)—游戲調(diào)試

102、5.3.4 游戲創(chuàng)意</p><p>  《吃豆人》游戲真可謂是一款經(jīng)典到家的迷你游戲了,想當(dāng)年在PC機上通宵達旦的熟悉通關(guān)的技能?,F(xiàn)如今自己可以通過學(xué)習(xí)來設(shè)置這款游戲了。游戲創(chuàng)意:當(dāng)年P(guān)C機上的吃豆游戲。</p><p><b>  6 詳細(xì)設(shè)計</b></p><p><b>  6.1程序系統(tǒng)結(jié)構(gòu)</b></p

103、><p>  本游戲的設(shè)計采用MVC模式(Model -View -Controller),即把本游戲的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣本游戲的設(shè)計被分成三個層-----模型層、視圖層、控制層。MVC模型圖如下所示:</p><p>  6.2 程序結(jié)構(gòu)、思想</p><p>  6.2.1 本程序需要解決的主要技術(shù)

104、問題</p><p>  1.游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將容易導(dǎo)致程序在運行不久后可能出現(xiàn)嚴(yán)重錯誤,甚至死循環(huán)。因此,其邏輯設(shè)計應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計中。</p><p>  2.游戲中為了美觀,適用性強,

105、可能采用外部文件引入的圖片貼圖,有關(guān)貼圖,在MIDP2.0中提供了用于增強游戲功能的game包,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。</p><p>  3.玩家的運行可以通過鍵盤的響應(yīng)事件控制,但敵方則因為是自動運行,就需要有一定的智能性;敵人的運行算法也要進行相關(guān)的設(shè)置,以免游戲過于簡單。</p><p>  4.游戲的地圖不可能通過繪圖來解決。否則,不

106、僅難于控制和處理過多的元素,也會因為過多的大型圖片而不能限制程序的大小,失去手機上程序的原則和Java的優(yōu)勢。</p><p>  5.游戲的結(jié)束、開始、動態(tài)信息畫面作為構(gòu)成一個程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖和人性化設(shè)置也需要有一定的考慮。</p><p>  6.2.2 程序流程</p><p>  本程序中涉及到兩

107、個類,分別是Eatdot和MainCanvas兩個。其中Eatdot是主類,而MainCanvas是游戲的主要設(shè)計以及算法部分。下面作簡單介紹游戲的程序設(shè)計:</p><p>  圖片的采取及顏色的繪制</p><p>  public MainCanvas(Command command, Command command1)</p><p><b>  

108、{</b></p><p>  seed = 1; //這部分是一些變量的初始化處理</p><p>  state = 0;</p><p>  imgs = new Image[27];</p><p>  gX = new int[3];</p><p>  gY = new int[3];

109、</p><p>  gDir = new int[3];</p><p>  gState = new int[3];</p><p>  gCount = new int[3];</p><p>  gLook = new int[3];</p><p>  sLook = new int[4];</p>

110、;<p>  sX = new int[4];</p><p>  sY = new int[4];</p><p>  sCount = new int[4];</p><p>  counter = 0;</p><p>  f = Font.getFont(0, 0, 0);</p><p>  s

111、coreChars = new char[6];</p><p>  levelChars = new char[2];</p><p>  dummyScore = "00000";</p><p>  dummyLevel = "00";</p><p>  //System.out.println

112、("main error 1");</p><p>  startCommand = command; </p><p>  pauseCommand = command1;</p><p>  //System.out.println("main error 2 ");</p><p>  tr

113、y // 圖片加載異常捕捉</p><p><b>  {</b></p><p>  maze = Image.createImage("/pacmaze.png");</p><p>  for(i = 0; i < 27; i++)</p><p>  imgs[i] = Image.

114、createImage("/img" + i + ".png");</p><p><b>  }</b></p><p>  catch(IOException ioexception) { }</p><p>  //System.out.println("main error 3 &quo

115、t;);</p><p>  w = getWidth(); //設(shè)置長寬分別用w h表示,只是為了后面用時簡潔</p><p>  h = getHeight();</p><p>  if(w > 112)</p><p><b>  {</b></p><p>  x

116、0 = (w - 112) / 2;</p><p><b>  w = 112;</b></p><p><b>  }</b></p><p>  if(h > 133)</p><p><b>  {</b></p><p>  y0 = (

溫馨提示

  • 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

提交評論