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

下載本文檔

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

文檔簡介

1、<p><b>  畢 業(yè) 設(shè) 計</b></p><p>  課程名稱: 基于J2ME平臺的俄羅斯方塊游戲設(shè)計與實現(xiàn) </p><p>  專業(yè)名稱: 計算機科學(xué)與技術(shù)(網(wǎng)絡(luò)工程) </p><p>  學(xué) 號: &

2、lt;/p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p><b>  目錄</b></p><p><b>  摘要3<

3、;/b></p><p><b>  第一章 緒論6</b></p><p>  1.1手機游戲的前景與開發(fā)6</p><p>  1.1.1 前景6</p><p>  1.1.2 開發(fā)7</p><p>  1.2國內(nèi)外手機游戲的現(xiàn)況7</p><p>

4、  1.2.1 國內(nèi)手機游戲概況7</p><p>  1.2.2 國外手機游戲概況8</p><p>  1.3 俄羅斯方塊游戲開發(fā)背景10</p><p>  1.4 本章小結(jié)10</p><p>  第二章J2ME——技術(shù)基礎(chǔ)12</p><p>  2.1什么是手機游戲12</p>&

5、lt;p>  2.2 J2ME簡介12</p><p>  2.2.1 Java 2平臺劃分12</p><p>  2.2.2 J2ME概述13</p><p>  2.2.3 J2ME的配置14</p><p>  2.2.4 J2ME體系結(jié)構(gòu)15</p><p>  2.2.5 KVM簡介17

6、</p><p>  2.2.6 MIDP17</p><p>  2.3 本章小結(jié)18</p><p>  第三章 系統(tǒng)設(shè)計18</p><p>  3.1 游戲規(guī)則設(shè)定18</p><p>  3.2 總體設(shè)計19</p><p>  3.3 系統(tǒng)設(shè)計的主要功能20</p&

7、gt;<p>  3.3.1游戲主體界面的繪制20</p><p>  3.3.2 游戲圖形的繪制21</p><p>  3.3.3 圖形的移動與旋轉(zhuǎn)控制21</p><p>  3.3.4 游戲方塊的顏色選擇22</p><p>  3.3.5 俄羅斯方塊的自動消行功能22</p><p>

8、  3.4 本章小結(jié)22</p><p>  第四章 系統(tǒng)實現(xiàn)22</p><p>  4.1 游戲主體功能的實現(xiàn)22</p><p>  4.1.1添加方塊到地圖數(shù)據(jù)23</p><p>  4.1.2 方塊變形24</p><p>  4.1.3 方塊移動24</p><p> 

9、 4.1.4 消行24</p><p>  4.2 其他功能的實現(xiàn)24</p><p>  4.3 本章小結(jié)24</p><p><b>  第五章 小結(jié)25</b></p><p><b>  致謝25</b></p><p><b>  參考文獻26

10、</b></p><p><b>  摘要</b></p><p>  隨著通信技術(shù)的發(fā)展和手機的普及,手機游戲的開發(fā)技術(shù)越來越為人們所關(guān)注。以J2ME為開發(fā)平臺,利用Java提供強大工具,不但可以在手機上實現(xiàn)靜態(tài)HTML技術(shù)所無法實現(xiàn)的計算處理、數(shù)據(jù)存儲、與服務(wù)器的通信等功能,而且能夠開發(fā)各種手機游戲。</p><p>  J2M

11、E(Java 2 Micro Edition)是近年來隨著各種不同設(shè)備,尤其是移動通信設(shè)備的飛速發(fā)展而誕生的一項新的開發(fā)技術(shù),它定位在消費性電子產(chǎn)品的應(yīng)用上,對設(shè)備的智能化、多樣化,提供了革命性的解決方案。</p><p>  J2ME亦稱作Java ME,是為機頂盒、移動電話和PDA之類嵌入式消費電子設(shè)備提供的Java語言平臺,包括虛擬機和一系列標(biāo)準(zhǔn)化的Java API。它和Java SE、Java EE一起構(gòu)

12、成Java技術(shù)的三大版本,并且同樣是通過JCP(Java Community Process)制訂的。</p><p>  俄羅斯方塊的基本規(guī)則是移動、旋轉(zhuǎn)和擺放游戲自動輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。本文是應(yīng)用J2ME平臺實現(xiàn)俄羅斯方塊游戲界面、控制、顯示、播放、道具使用等游戲基本規(guī)則需求,游戲設(shè)計與實現(xiàn)平臺為J2ME。</p><p>  關(guān)鍵詞:Java 、J

13、2ME平臺 、 俄羅斯方塊</p><p><b>  Abstract</b></p><p>  With the development of communication technology and the popularity of mobile phones, mobile phone game development technology is more

14、 and more concern for people.To J2ME development platform, the use of Java provides a powerful tool, not only static HTML can not be achieved on the phone computing, data storage, communication with the server functions,

15、 and to develop a variety of mobile games.</p><p>  J2ME (Java 2 Micro Edition) In recent years, with a variety of equipment, especially the rapid development of mobile communications equipment and the birth

16、 of a new development technology, it is positioned in the consumer electronics applications, intelligent devicesand diversified, providing a revolutionary solution.</p><p>  J2ME also known as Java ME, Java

17、language platform for set-top boxes, mobile phones and PDAs, embedded consumer electronics devices, including virtual machine and a standardized set of Java APIs. And Java SE, the Java EE together constitute the three ve

18、rsions of the Java technology, and as the JCP (the Java Community Process) formulated.</p><p>  The basic rules of Tetris move, rotation and placed in the game automatically output box, so arranged in a comp

19、lete one or more lines and eliminate the score. This is the application J2ME platform Tetris game interface, control, display, playback, demand for the use of props such as basic game rules, game design and implementatio

20、n platform for the J2ME.</p><p>  Keywords: Java, J2ME platform, Tetris</p><p><b>  第一章 緒論</b></p><p>  1.1手機游戲的前景與開發(fā)</p><p><b>  1.1.1 前景</b>&l

21、t;/p><p>  在地鐵、機場和車站,我們可以看到越來越多的人低頭玩著手機游戲,伴隨著不斷變化的表情,或皺眉或微笑。當(dāng)我們購買新的手機,也會發(fā)現(xiàn)越來越多嵌入手機系統(tǒng)的娛樂功能,特別是各種精彩的游戲。手機已經(jīng)成為許多人生活的一部分,人們也漸漸習(xí)慣于將手機作為新的娛樂工具。</p><p>  越來越多的人陶醉于手機游戲帶來的新鮮體驗。由于手機的便攜性,使得手機游戲隨著手機的普及在全世界風(fēng)行起

22、來。到2003年,以中國大陸為例,手機在人們的生活中已經(jīng)扮演著舉足輕重的角色——平均每5人1部手機的擁有量首次超越了固定電話,隨身攜帶手機成了很多人自然而然的習(xí)慣。截止2003年的第四個季度,中國手機用戶突破了2.5億大關(guān),手機成為使用最頻繁的通信工具,進而引爆了手機娛樂這個巨大的市場。</p><p>  而今的手機游戲種類繁多。最常見的是已經(jīng)內(nèi)嵌在手機中,比如很多品牌手機提供的“貪食蛇”游戲。這些是由手機制造

23、商開發(fā),在出廠前就直接固化在手機中的游戲,用戶既不能添加也無法刪除,當(dāng)然玩的時候也無需付費。第二種游戲也是提前固化在手機中,比如常見的移動QQ,但這種游戲是游戲商和手機廠商合作的結(jié)果,用戶在玩游戲的時候需要支付一些費用。還有一種則是供用戶自行選擇下載的游戲,用戶可以根據(jù)自己的興趣愛好和手機的硬件支持來決定下載某一款游戲,或是刪除已經(jīng)下載的游戲。通過這種方式,在手機有限的系統(tǒng)資源限制下,用戶可以不斷地體驗新款游戲。由于可以滿足用戶的個性化

24、需求,下載類游戲顯示出了巨大的市場潛力,可能成為游戲產(chǎn)業(yè)新的增長點。</p><p><b>  1.1.2 開發(fā)</b></p><p>  現(xiàn)在手機應(yīng)用的通用開發(fā)平臺主要有兩個,一個是JAVA,一個是BREW。BREW是Binary Runtime Environment for Wireless(無線二進制運行環(huán)境)的縮寫,是美國高通公司(QUALCOMM)為無

25、線數(shù)據(jù)應(yīng)用程序開發(fā)和執(zhí)行提供的通用接口。</p><p>  JAVA是由Java虛擬機和Java核心類所構(gòu)成。它為純Java程序提供了統(tǒng)一的編程接口,而不管下層操作系統(tǒng)是什么。 </p><p>  java是一個可以在不同操作系統(tǒng)(例如windows,unix等)上運行的編程語言,java平臺是指運行在各種終端(如pc、服務(wù)器、移動設(shè)備、嵌入式設(shè)備)的系統(tǒng)軟件。PC機上的java程序是

26、用javaSE開發(fā)出來的,服務(wù)器端的java程序是用javaEE開發(fā)出來的,移動設(shè)備的java程序是用javaME開發(fā)出來的。</p><p>  1.2國內(nèi)外手機游戲的現(xiàn)況</p><p>  1.2.1 國內(nèi)手機游戲概況</p><p>  目前,手機游戲發(fā)展到了一個新的階段。Iphone手機以其超前的設(shè)計理念和華麗的外表征服了一大群青年人,越來越多的人使用蘋果

27、手機了。但是蘋果手機的獨特硬件條件,不一樣的操作系統(tǒng)和另類的操作模式,使得Iphone手機的游戲必須通過定制。也就是說,有部分手機游戲開發(fā)商是基于特定的系列手機或是特定的操作系統(tǒng)設(shè)計的;也有部分開發(fā)商是以通用手機開發(fā)的。</p><p>  自從2003年,中國移動推出了“移動百寶箱”業(yè)務(wù)以后,國內(nèi)的手機游戲產(chǎn)業(yè)經(jīng)過前幾年的艱難成長期以后,已經(jīng)成為繼短信業(yè)務(wù)之后,無線增值服務(wù)業(yè)務(wù)中的一大金礦。根據(jù)2009年市場調(diào)

28、查報告指出,“移動百寶箱”業(yè)務(wù)注冊用戶已超過9000萬,這意味著,在中國,有近9000萬人嘗試過玩手機游戲?,F(xiàn)在全國手機用戶已超過了5億,而且人數(shù)還在不斷地增加中,面對如此大的一個市場,諾基亞、摩托羅拉等手機終端生產(chǎn)廠商已經(jīng)越來越重視手機游戲?qū)κ謾C銷售的帶動作用,以手機游戲為賣點的手機產(chǎn)品在不斷地推出。</p><p>  游戲進入手機是科技發(fā)展的必然趨勢,不管是單機游戲還是網(wǎng)絡(luò)游戲都最終將逐步向手機平臺靠攏,或

29、者說,起碼一部分硬件要求不高的休閑益智類游戲已經(jīng)在向手機平臺靠攏了。</p><p>  現(xiàn)在國內(nèi)手機游戲與國外手機游戲仍存在一段不小的差距,具體體現(xiàn)在:</p><p><b> ?。?、產(chǎn)品創(chuàng)意</b></p><p>  這也就是通常所說的設(shè)計理念和游戲策劃了。一款游戲的成功,很大程度上取決于游戲的創(chuàng)意和游戲的策劃。產(chǎn)品創(chuàng)意就如同軟件工程中

30、的需求分析一樣重要。國內(nèi)手機游戲往往是缺乏好的創(chuàng)意,只是一味的抄襲國外成功案例或移植PC機上比較經(jīng)典的案例。</p><p><b> ?。?、程序開發(fā)</b></p><p>  雖然國內(nèi)手機游戲的發(fā)展歷程很短,只是近幾年才興起的,但其實并不缺少優(yōu)秀程序員??墒?,由于國內(nèi)并沒有大型的手機游戲公司,很多公司都是給日韓或歐美公司做游戲外包。國產(chǎn)游戲開發(fā)商對資金投入的也不多

31、,這就導(dǎo)致優(yōu)秀人才的外流?,F(xiàn)在很多小型的國產(chǎn)手機游戲公司里的程序員都是只有幾年Java或C++編程經(jīng)歷的程序員轉(zhuǎn)型過來的,甚至有些公司為了節(jié)約成本,專門聘請剛大學(xué)畢業(yè)的本科生,這就導(dǎo)致很多游戲程序員是為了編程而編程;而國外的游戲程序員本來自身就對游戲有一定的熱愛,在游戲編寫過程中還能從玩家的角度考慮整個游戲的流程是否合理</p><p>  1.2.2 國外手機游戲概況</p><p> 

32、 根據(jù)調(diào)查結(jié)果統(tǒng)計顯示,去年全球手機游戲市場的收入,包括流量收入,達到110億美元,其中亞洲市場占了大部分。目前國際手機游戲市場主要是日韓,歐洲和美國三足鼎立。</p><p><b>  1、日韓</b></p><p>  日本在手機游戲領(lǐng)域絕對處于領(lǐng)導(dǎo)地位。早在1999年,當(dāng)包括北美以及歐洲一些經(jīng)濟發(fā)達國家對手機游戲還一無所知的時候,日本已經(jīng)擁有超過30萬的手機

33、游戲玩家,占了全世界手機游戲玩家的70﹪左右。日本手機游戲發(fā)展迅速有一個主要原因,是因為日本原來就是游戲產(chǎn)業(yè)大國。世界上傳統(tǒng)游戲市場基本就由日本的索尼,任天堂,世嘉等游戲廠商所壟斷,他們掌握了豐富的PC游戲資源和大量的游戲素材,能很快的從一個平臺轉(zhuǎn)移到另一個平臺進行開發(fā)。</p><p>  韓國為了轉(zhuǎn)移國民對經(jīng)濟危機注意力,大力的推動游戲產(chǎn)業(yè)的發(fā)展。在傳統(tǒng)游戲中,WCG已經(jīng)成為每個職業(yè)電子競技玩家最高的夢想。由

34、于有了政府大量優(yōu)惠政策和充足的資金注入,在韓國催生了大批的手機游戲開發(fā)商,大力的推動了手機游戲的發(fā)展。</p><p><b>  2、歐洲</b></p><p>  雖然歐洲很早就推出了手機游戲業(yè)務(wù),第一款手機游戲“貪吃蛇”也是歐洲的諾基亞公司制作的,但2003年以前,歐洲的手機游戲市場還一直停留在短信游戲階段,與日韓相比,歐洲手機游戲市場相對要落后一些。<

35、/p><p>  不過,隨著手機游戲市場的擴大,越來越多的歐洲手機運營商看到了里面的商機,大量引入日韓手機游戲運作模式,這也極大的推動了歐洲手機游戲的發(fā)展。</p><p><b>  3、美國</b></p><p>  雖然美國手機游戲的起步相對是最晚的,但其發(fā)展勢頭卻相當(dāng)迅速。2002年美國大多數(shù)移動網(wǎng)絡(luò)速度進行提升后,手機游戲的發(fā)展就更為迅

36、速了。如今,美國移動運營商每周都在推出新的游戲,手機生產(chǎn)廠商也在不斷的推出支持新游戲的產(chǎn)品。從游戲提供的數(shù)量上來看,美國移動運營商已經(jīng)大大超過了歐洲移動運營商了。</p><p>  根據(jù)美國分析師表示,美國手機游戲業(yè)務(wù)的迅速發(fā)展,使得手機平臺有望</p><p>  成為繼電腦、控制桿、掌機游戲、互聯(lián)網(wǎng)之后的第五大游戲平臺。</p><p>  1.3 俄羅斯方塊

37、游戲開發(fā)背景</p><p>  本文制作的手機游戲名為《俄羅斯方塊》。</p><p>  俄羅斯方塊上手極其簡單,但是要熟練地掌握其中的操作與擺放技巧,難度卻不低。作為家喻戶曉老少皆宜的大眾游戲,其普及程度可以說是史上任何一款游戲都無法相比的。但是,誰知道這么優(yōu)秀的娛樂工具,出自哪位神人之手呢?顧名思義,俄羅斯方塊自然是俄羅斯人發(fā)明的。這位偉人叫做阿列克謝帕基特諾夫(Alexey Pa

38、zhitnov) 。</p><p>  俄羅斯方塊的一些基本規(guī)則:</p><p>  1、一個用于擺放小型正方形的平面虛擬場地,其標(biāo)準(zhǔn)大?。盒袑挒?0,列高為20,以每個小正方形為單位;</p><p>  2、一組由4個小型正方形組成的規(guī)則圖形,英文稱為Tetromino,中文通稱為方塊,共有7種,分別以S、Z、L、J、I、O、T這7個字母的形狀來命名(如圖)

39、;</p><p>  3、通過設(shè)計者預(yù)先設(shè)置的隨機發(fā)生器不斷地輸出單個方塊到場地頂部,以一定的規(guī)則進行移動、旋轉(zhuǎn)、下落和擺放,鎖定并填充到場地中。每次擺放如果將場地的一行或多行完全填滿,則組成這些行的所有小正方形將被消除,并且以此來換取一定的積分或者其他形式的獎勵。而未被消除的方塊會一直累積,并對后來的方塊擺放造成各種影響。</p><p>  4、如果未被消除的方塊堆放的高度超過場地所

40、規(guī)定的最大高度(并不一定是20或者玩家所能見到的高度),則游戲結(jié)束。</p><p><b>  1.4 本章小結(jié)</b></p><p>  本章詳盡地敘述了手機游戲的發(fā)展前景,以及本文所述游戲的一些背景與基本規(guī)則。</p><p>  第二章J2ME——技術(shù)基礎(chǔ)</p><p>  2.1什么是手機游戲</p&

41、gt;<p>  手機游戲是指運行于手機上的游戲軟件。目前用來編寫手機最多的程序是Java語言,見J2ME。其次是C語言。隨著科技的發(fā)展,現(xiàn)在手機的功能也越來越多,越來越強大。而手機游戲也遠遠不是我們印象中的什么“俄羅斯方塊”捕魚達人“貪吃蛇”之類畫面簡陋,規(guī)則簡單的游戲,進而發(fā)展到了可以和掌上游戲機媲美,具有很強的娛樂性和交互性的復(fù)雜形態(tài)了。</p><p>  手機游戲有以下特點:</p&

42、gt;<p>  1. 龐大的潛在用戶群</p><p>  全球在使用的移動電話已經(jīng)超過10億部,而且這個數(shù)字每天都在不斷增加。在除美國之外的各個發(fā)達國家,手機用戶都比計算機用戶多。手機游戲潛在的市場比其他任何平臺,比如PlayStation和GameBoy都要大。</p><p><b>  2. 便攜性</b></p><p&g

43、t;  在控制臺游戲時代,GameBoy熱銷的一個原因就是便攜性——人們可以隨時隨地沉浸在自己喜歡的游戲中,還可以隨時隨地?fù)屬徸约合矚g的裝備或?qū)櫸?。和游戲控制臺或者PC相比,手機雖然可能不是一個理想的游戲設(shè)備,但畢竟人們總是隨時隨身攜帶,這樣手機游戲很可能成為人們消遣時間的首選。</p><p><b>  3. 支持網(wǎng)絡(luò)</b></p><p>  因為手機是網(wǎng)絡(luò)設(shè)

44、備,在一定限制因素下可以實現(xiàn)多人在線游戲。</p><p>  2.2 J2ME簡介</p><p>  2.2.1 Java 2平臺劃分</p><p>  認(rèn)識到一種結(jié)構(gòu)不可能適應(yīng)所有的情況,所以,Sun公司將Java劃分成3個不同的版本,每個版本都針對當(dāng)今計算機產(chǎn)業(yè)中的一個特定領(lǐng)域:</p><p>  1.J2EE(Java 2 p

45、latform,Enterprise Edition),用于企業(yè)為客戶、供應(yīng)商和員工的可升級的服務(wù)器解決方案。</p><p>  2.J2SE(Java 2 platform,Standard Edition),用于常見的桌面計算機市場和低端商務(wù)應(yīng)用提供解決方案。</p><p>  3.J2ME(Java 2 platform,Micro Edition),用于消費產(chǎn)品和嵌入式設(shè)備的最

46、佳解決力一案。他們之間的關(guān)系如圖2-1所示:</p><p>  圖2-1 Java的體系結(jié)構(gòu)</p><p>  2.2.2 J2ME概述</p><p><b>  J2ME 是什么?</b></p><p>  Sun Microsystems 將 J2ME 定義為“一種以廣泛的消費性產(chǎn)品為目標(biāo)的的高度優(yōu)化的 Ja

47、va 運行時環(huán)境,包括尋呼機、移動電話、可視電話、數(shù)字機頂盒和汽車導(dǎo)航系統(tǒng)。”</p><p>  自從 1999 年 6loper Conference 上聲明之后,J2ME 為小型設(shè)備帶來了 Java 語言的跨平臺功能,允許移動無線設(shè)備共享應(yīng)用程序。有了 J2ME,Sun 已經(jīng)使 Java 平臺能夠適應(yīng)集成了或基于小型計算設(shè)備月在 JavaOne Deve的用戶產(chǎn)品。</p><p>

48、<b>  J2ME 總體架構(gòu)</b></p><p>  J2ME 使用配置和簡表定制 Java 運行時環(huán)境 (JRE)。作為一個完整的 JRE,J2ME 由配置和簡表組成,配置決定了使用的 JVM,而簡表通過添加特定于域的類來定義應(yīng)用程序。</p><p>  雖然 J2SE 虛擬機通常被稱為一種 JVM,但是 J2ME 虛擬機、KVM 和 CVM 都是 JVM

49、的子集。KVM 和 CVM 均可被看作是一種 Java 虛擬機 -- 它們是 J2SE JVM 的壓縮版,并特定于 J2ME。</p><p>  2.2.3 J2ME的配置</p><p>  配置將基本運行的環(huán)境定義為一套核心類和一個運行在特定類型設(shè)備上的特定的JVM。J2ME分為兩個配置:一個是CDC(Connected Device Configuration),另一個是CLDC

50、(Connected Limited Device Configuration)。它們所針對的設(shè)備的CPU和內(nèi)存是不一樣的,所以它們所使用的虛擬機和核心類庫也不相同。CDC主要針對32位及75MHz以上的處理器,CLDC主要針對16位,32位及16MHz以上的處理器。CDC用的虛擬機是CVM,而CLDC用的是KVM。同其處理器和內(nèi)存能力相適應(yīng),CVM包含更多的虛擬機處理能力。CDC的核心類庫也比CLDC的要大。J2ME 環(huán)境可以被動態(tài)地

51、配置為提供運行應(yīng)用程序所需要的環(huán)境,而不用考慮是否為設(shè)備提供了運行該應(yīng)用程序所需的所有Java技術(shù)庫。核心平臺接收應(yīng)用程序代碼和庫。運行在網(wǎng)絡(luò)上的服務(wù)器軟件執(zhí)行配置工作。</p><p>  CDC針對的設(shè)備主要是數(shù)字電視、頂置盒、網(wǎng)絡(luò)電話、車載計算設(shè)備和Server后端的一些應(yīng)用。這些設(shè)備的特點是有線連接,穩(wěn)定而持續(xù)的電源供應(yīng),設(shè)備資源比較受限。</p><p>  CLDC簡要描述了高

52、度限制設(shè)備上每個J2ME執(zhí)行所要求的一套最基本的庫和Java 虛擬機特征。所針對的設(shè)備主要是無線的手持設(shè)備,PDA或POS機。這些設(shè)備的特點是無線連接(帶寬受限,連接時斷時續(xù)),沒有穩(wěn)定的電源供應(yīng)(通常使用電池)且和資源極少。CLDC現(xiàn)在在國內(nèi)外用得比較廣泛的是手機上的使用,在日本和韓國已經(jīng)有了許多成功的實例。</p><p>  CLDC的設(shè)計目標(biāo)是定義一個標(biāo)準(zhǔn)的,占用內(nèi)存極少的平臺來滿足資源很少的那些設(shè)備的要

53、求。它可以確保動態(tài),安全地將交互式Java應(yīng)用部署到一些小的設(shè)備上去。確保 第三方的應(yīng)用開發(fā)人員可以為別的設(shè)備開發(fā)應(yīng)用程序。CLDC 1.0版由18個公司通過JCP組織來制定,它定義了所使用的Java虛擬機和核心類庫用在一些小的具有Java能力的設(shè)備空間。</p><p>  KVM是CVM的一個子集,CLDC的核心類庫也大部分包含在CDC的核心類庫中,但CLDC也定義了一些自已的類庫。再加上外圍的Prof

54、ile和OEM extension API組成了一個完整的J2ME環(huán)境。</p><p>  2.2.4 J2ME體系結(jié)構(gòu)</p><p>  J2ME的體系結(jié)構(gòu)是基于設(shè)備的類別的。一個類別定義了一個特定種類的設(shè)備:</p><p>  手機、簡單尋呼機和電腦記事本都是單獨的類別。為了支持有限連接設(shè)備類別所要求的那種靈活性和可定制性,Snu公司將J2ME體系結(jié)構(gòu)設(shè)計

55、成模塊化的和可伸縮的。J2ME技術(shù)在一個完整的應(yīng)用程序運行時模型中定義了這種模塊性和可伸縮性,在該模型中的三個軟件層都構(gòu)建在設(shè)備的主機操作系統(tǒng)上。圖2-2描述了J2ME的體系結(jié)構(gòu):</p><p>  圖2-2 J2EE體系結(jié)構(gòu)</p><p>  1.主機操作系統(tǒng)層(Host Operating Systeam Layer):這一層為特定硬件設(shè)備的操作系統(tǒng)層。</p>&l

56、t;p>  2.Java虛擬機層(Java Virtual Machine Layer):這一層是Java虛擬機的一個實現(xiàn),它是為特定設(shè)備的主機操作系統(tǒng)定制的,支持一個特定的J2ME配置。</p><p>  3.配置層(Configuration Layer):配置層定義Java虛擬機的功能和特定類別設(shè)備上可用的Java類庫的最小集。從某種程度上說,一個配置定義了Java平臺的功能部件和庫的共同性,開發(fā)者

57、可以假設(shè)這些功能部件和庫在屬于某一特定類別的所有設(shè)備上都是可用的。這一層對用戶是透明的,但它對描述的實現(xiàn)者非常重要。</p><p>  4.描述層(Profile Layer):描述層定義了特定類別設(shè)備上可用的應(yīng)用程序編程接口的最小集。描述在一個特定的配置上實現(xiàn)。應(yīng)用程序是針對特定的描述編寫的,因此可以移植到支持該描述的任何設(shè)備上。一個設(shè)備可以支持多個描述。用戶和應(yīng)用程序開發(fā)者看到最多的就是這一層。Java虛擬

58、機層、配置層和描述層一起為J2ME應(yīng)用程序提供了一個標(biāo)準(zhǔn)的運行時環(huán)境,這個環(huán)境允許新的應(yīng)用程序和服務(wù)動態(tài)地被安裝到各種終端用戶設(shè)備上。在手機上,KVM,CLDC,MIDPP分別實現(xiàn)了J2ME體系結(jié)構(gòu)中的Java虛擬機層、配置層和描述層。下面,作者通過對KVM, CLDC, MIDP的詳細介紹,以加深讀者對手機上的J2ME體系結(jié)構(gòu)的認(rèn)識。</p><p>  2.2.5 KVM簡介</p><p

59、>  KVM 是最小的運行時環(huán)境的一部分,包含在 Java 2 Platform, Micro Edition(J2ME 平臺)軟件中,適用于那些內(nèi)存和 CPU 能力有限的設(shè)備。移動電話、尋呼機和個人數(shù)字助理 (PDA) 中通常會運行 KVM,用以提供常見的計算功能。 </p><p>  KVM 類似于 JVM(Java 虛擬機),它也包含運行用 Java 技術(shù)編寫的應(yīng)用程序和小應(yīng)用程序的引擎。KVM 適

60、用于無線電話和移動設(shè)備,而 JVM 則適用于計算機。Java 2 Platform, Standard Edition(J2SE 平臺)包含 JRE、Plug-in 軟件和 JVM。 </p><p>  J2ME 技術(shù)使用包括 KVM 在內(nèi)的許多不同大小的虛擬機。KVM 只是 CLDC(有限連接設(shè)備配置)的一項應(yīng)用,它用于在移動設(shè)備上運行 Java 軟件。 </p><p>  2.2.

61、6 MIDP</p><p>  MIDP(Mobile Information Device Profile,移動信息設(shè)備配置文件)建立在 CLDC 的基礎(chǔ)之上,用來描述手機和尋呼機這樣更加具體化的的無線移動設(shè)備。</p><p>  對于 Java ME 平臺,MIDP 定義了一個標(biāo)準(zhǔn)的 Java API 集合,此集合與聯(lián)網(wǎng)的受限設(shè)備配置 CLDC 一起提供了一個面向移動信息設(shè)備(如移

62、動電話、雙向?qū)ず魴C和無線個人電腦記事本)的完整 Java ME 應(yīng)用程序運行環(huán)境。</p><p><b>  它的功能有:</b></p><p><b>  ?顯示工具箱 </b></p><p><b>  ?用戶輸入方法 </b></p><p>  ?持久性數(shù)據(jù)存儲(

63、使用簡單的面向記錄的數(shù)據(jù)庫模型) </p><p>  ?基于HTTP 1.1 的網(wǎng)絡(luò)(使用 CLDC 通用連接框架)</p><p><b>  2.3 本章小結(jié)</b></p><p>  本章較為詳細地介紹了制作手機游戲的基礎(chǔ)平臺——J2ME。</p><p><b>  第三章 系統(tǒng)設(shè)計</b&g

64、t;</p><p>  3.1 游戲規(guī)則設(shè)定</p><p>  1、一個用于擺放小型正方形的平面虛擬場地,其標(biāo)準(zhǔn)大?。盒袑挒?0,列高為20,以每個小正方形為單位。 </p><p>  2、一組由4個小型正方形組成的規(guī)則圖形,英文稱為Tetromino,中文通稱為方塊共有7種,分別以S、Z、L、J、I、O、T這7個字母的形狀來命名。 </p>&

65、lt;p>  I:一次最多消除四層 </p><p>  J(左右):最多消除三層,或消除二層 </p><p>  L:最多消除三層,或消除二層 </p><p><b>  O:消除一至二層 </b></p><p>  S(左右):最多二層,容易造成孔洞 </p><p>  Z (左

66、右):最多二層,容易造成孔洞 </p><p><b>  T:最多二層 </b></p><p> ?。?)部分游戲有單格方塊,可以穿透固定的方塊到達最下層空位。其他的改版中出現(xiàn)更多特別的造型。 </p><p>  方塊會從區(qū)域上方開始緩慢繼續(xù)落下。 </p><p> ?。?)玩家可以做的操作有:以90度為單位旋轉(zhuǎn)

67、方塊,以格子為單位左右移動方塊,讓方塊加速落下。 </p><p>  (3)方塊移到區(qū)域最下方或是著地到其他方塊上無法移動時,就會固定在該處,而新的方塊出現(xiàn)在區(qū)域上方開始落下。 </p><p> ?。?)當(dāng)區(qū)域中某一列橫向格子全部由方塊填滿,則該列會消失并成為玩家的得分。同時刪除的列數(shù)越多,得分指數(shù)上升。 </p><p> ?。?)當(dāng)固定的方塊堆到區(qū)域最上方而

68、無法消除層數(shù)時,則游戲結(jié)束。 </p><p>  (6)一般來說,游戲還會提示下一個要落下的方塊,熟練的玩家會計算到下一個方塊,評估現(xiàn)在要如何進行。由于游戲能不斷進行下去對商業(yè)用游戲不太理想,所以一般還會隨著游戲的進行而加速提高難度。 </p><p>  3、通過設(shè)計者預(yù)先設(shè)置的隨機發(fā)生器不斷地輸出單個方塊到場地頂部,以一定的規(guī)則進行移動、旋轉(zhuǎn)、下落和擺放,鎖定并填充到場地中。每次擺放

69、如果將場地的一行或多行完全填滿,則組成這些行的所有小正方形將被消除,并且以此來換取一定的積分或者其他形式的獎勵。而未被消除的方塊會一直累積,并對后來的方塊擺放造成各種影響。 </p><p>  4、如果未被消除的方塊堆放的高度超過場地所規(guī)定的最大高度(并不一定是20或者玩家所能見到的高度),則游戲結(jié)束。 </p><p>  具體到每一款不同的游戲,其中的細節(jié)規(guī)則都可能有千差萬別,但是以

70、上的基本規(guī)則是相同的。</p><p><b>  3.2 總體設(shè)計</b></p><p>   本游戲的操作流程分為如下幾步:</p><p>  (1).用戶啟動MIDlet后,首先進入Master/Slave選擇畫面,如選擇Slave,則向周圍廣播自己的服務(wù),然后等待;如是Master,則搜索周圍的服務(wù)。Master端在搜索到服

71、務(wù)后,將Slave端的服務(wù)描述信息現(xiàn)實在屏幕上。</p><p>  (2).Master選擇想聯(lián)機游戲的Slave(廣播服務(wù)可以是多個),建立連接。</p><p>  (3).按“開始”鍵,判斷遠端的玩家是否已經(jīng)同意開始游戲(此時進入等待狀態(tài)),如沒有同意,則繼續(xù)等待,并發(fā)送“等待”信號給遠端玩家。</p><p>  (4).按“開始”鍵,如遠端玩家已經(jīng)“等待

72、”,則“初始化”游戲,同時發(fā)送該信號給遠端玩家。</p><p>  (5).開始游戲后,再按“開始”鍵,則暫?;蛴螒驙顟B(tài)之間互相切換。</p><p>  (6).如受到對方游戲結(jié)束信號,則主屏上顯示勝利畫面,副屏上顯示失敗畫面,如自己失敗,則主屏上顯示失敗畫面,副屏上顯示勝利畫面,并發(fā)送該信號給遠端玩家。</p><p>  (7).如遠端玩家退出或斷開,則本地

73、游戲玩家繼續(xù),代表遠端玩家的狀態(tài)值為退出或失去連接,并停止發(fā)送數(shù)據(jù)。</p><p>  3.3 系統(tǒng)設(shè)計的主要功能</p><p>  3.3.1游戲主體界面的繪制</p><p>  俄羅斯方塊游戲的地圖(在窗口用戶區(qū)中繪制出的地圖)為22行×12列,用一個24行×14列的數(shù)組存儲每格的狀態(tài)(被占據(jù)的方格為1,否則為0),其中第0行不顯示;第

74、23行,第0、13列不用。</p><p>  行數(shù)和列數(shù)分別用ROW和COL表示,分別為24和14。</p><p>  窗口坐標(biāo)系:X向右,Y向下。</p><p>  為了與窗口坐標(biāo)系一致,二維數(shù)組行循環(huán)變量用y,列循環(huán)變量用x。方塊的當(dāng)前位置(指最左上角方格在坐標(biāo)系中的位置)為(CurrentY, CurrentX)。</p><p>

75、;  #include <windows.h></p><p>  #define ROW 24//地圖的行數(shù)目(第23行不用)</p><p>  #define COL 14//地圖的列數(shù)目(第0列和第13列不用)</p><p>  #define MAX_CLASS 7//方塊數(shù)目</p>

76、<p>  #define LEN 20//每個方格大小為20×20像素</p><p>  #define StartY -1 * LEN + 5//-15,繪制俄羅斯方塊地圖時的邊界起始位置</p><p>  #define StartX -1 * LEN + 5//-15</p><p>  in

77、t Map[ROW][COL];//存儲俄羅斯方塊地圖中每格的狀態(tài)(被占據(jù)為1,否則為0)</p><p>  int CurrentBox[4][4];//當(dāng)前落下的方塊</p><p>  int CurrentY, CurrentX;//當(dāng)前落下方塊的當(dāng)前位置(指左上角位置)</p><p>  int NextBox[4

78、][4];//下一個將落下的方塊</p><p>  3.3.2 游戲圖形的繪制</p><p>  在TetrisBlock類中定義了7種方塊的不同形狀和對應(yīng)的顏色,都有一個對應(yīng)的ID,分別為1—7,且對于每種方塊來說,其顏色均是固定,方塊由16個4*4的小方格組成,故在邏輯上可以使用4*4的二維數(shù)組表示,又由于每個方塊都有4種旋轉(zhuǎn)變化,故可以用4*4*4的三維數(shù)組表示一個方塊的所有

79、狀態(tài)。</p><p>  protected int blockpattern1[][][]={//blockpattern1:“T”字及四種旋轉(zhuǎn)形狀 </p><p>  表3-1“T”字形方塊</p><p>  3.3.3 圖形的移動與旋轉(zhuǎn)控制</p><p>  這個游戲的方塊移

80、動與旋轉(zhuǎn)由鍵盤上的方向鍵控制,左鍵表示讓方塊向左移動,右鍵表示讓方塊向右移動,向下的方向鍵表示讓方塊加速下落,中間鍵則表示讓方塊旋轉(zhuǎn)。</p><p>  3.3.4 游戲方塊的顏色選擇</p><p>  該游戲用一個顏色數(shù)組儲存所有的游戲方塊的顏色,游戲過程中下落的方塊的顏色從數(shù)組中隨機產(chǎn)生。</p><p>  3.3.5 俄羅斯方塊的自動消行功能</p

81、><p>  游戲中當(dāng)一行被方塊所填滿后,那么在下一個下墜方塊生成的同時,該行將自動消掉</p><p><b>  3.4 本章小結(jié)</b></p><p>  本章講述了做俄羅斯方塊的一些設(shè)想,以及一些需要實現(xiàn)的功能。</p><p><b>  第四章 系統(tǒng)實現(xiàn)</b></p>&l

82、t;p>  4.1 游戲主體功能的實現(xiàn)</p><p>  該游戲主體在于游戲運行界面。當(dāng)游戲運行后,下墜方塊將實現(xiàn)向左、向右、旋轉(zhuǎn)等一系列動作。運行游戲點擊“開始”按鈕,結(jié)束點“退出”按鈕。下面是一些實現(xiàn)主體功能的代碼及解說:</p><p>  4.1.1添加方塊到地圖數(shù)據(jù)</p><p>  眾所周知,俄羅斯方塊運行后界面將隨機產(chǎn)生一個下墜的方塊,在不做

83、任何控制下,該方塊將一直下落到界面底部。所以添加方塊到地圖數(shù)據(jù)是本游戲必不可少的一部,代碼如下:</p><p><b>  */ </b></p><p>  private void addBrickToMap(){ </p><p>  for(int i = 0;i < 4;i++){ </p><p> 

84、 for(int j = 0;j < 4;j++){ </p><p>  //判斷數(shù)據(jù)未超出地圖邊界 </p><p>  if(((cCol+j) >= 0) </p><p>  ((cCol + j < MAXCOL)) </p><p>  ((cRow + i < MAXROW))){ </p>

85、<p>  //不添加0的數(shù)據(jù) </p><p>  if(brick[brickType][index][i][j] == 1){ </p><p>  map[cRow + i][cCol + j] = </p><p>  brick[brickType][index][i][j]; </p><p><b> 

86、 } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  圖4-1 俄羅斯方

87、塊游戲界面</p><p>  4.1.2 方塊變形</p><p>  玩過俄羅斯方塊這個游戲的人都知道,方塊的變形時該游戲很重要的一步,因為只有經(jīng)過了變形,方塊才能把所要的哪一行填滿,從而達到消行的目的。</p><p><b>  */ </b></p><p>  public void changeShape(

88、){ </p><p>  //變形到下一種形狀 </p><p><b>  index++; </b></p><p>  if(index == brick[brickType].length){ </p><p>  index = 0; </p><p><b>  } <

89、;/b></p><p>  //變形以后的位置是否超出邊界 </p><p>  if(testNewPosition()){ </p><p>  index--;//退回原來的形狀 </p><p><b>  } </b></p><p>  if(index < 0){ &l

90、t;/p><p>  index = brick[brickType].length - 1; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  /**</b></p><p>  4.1.3

91、方塊移動</p><p>  俄羅斯方塊游戲,方塊可以向左、向右以及加速下墜等。這樣保證了可以用方塊簡單地填滿一行,達到消行的目的。下面一段為方塊向左移動的代碼:</p><p>  * 原則是:方塊左側(cè)的第一行非空列貼近邊界 </p><p><b>  */ </b></p><p>  public void mo

92、veToLeft(){ </p><p><b>  cCol--; </b></p><p>  //如果新的位置不可用 </p><p>  if(testNewPosition()){ </p><p><b>  cCol++; </b></p><p><b&

93、gt;  } </b></p><p><b>  } </b></p><p><b>  /**</b></p><p><b>  4.1.4 消行</b></p><p>  俄羅斯方塊最重要的一步可以說是消行,即當(dāng)某一行完全被方塊所填滿后,系統(tǒng)會在下一個下

94、墜物生成的同時清除該滿行。這就保證了該游戲的持續(xù)運行。</p><p><b>  */ </b></p><p>  private void clearAllFullRow(){ </p><p>  for(int row = MAXROW - 1;row >= 0;row--){ </p><p><

95、b>  //如果是滿行 </b></p><p>  if(isFullRow(row)){ </p><p><b>  //增加積分 </b></p><p>  score += 10; </p><p><b>  //消當(dāng)前行 </b></p><p&

96、gt;  clearOneFullRow(row); </p><p>  row++; //繼續(xù)處理當(dāng)前行 </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>

97、<b>  /**</b></p><p>  4.2 其他功能的實現(xiàn)</p><p>  當(dāng)界面上堆積的方塊高度超過界面高度后則游戲結(jié)束,結(jié)束后安退出按鈕退出游戲。</p><p><b>  4.3 本章小結(jié)</b></p><p>  本章講述了該游戲主要功能的實現(xiàn)(代碼),以及一些其他功能的

98、介紹。</p><p><b>  第五章 小結(jié)</b></p><p>  這篇論文在老師的指導(dǎo)下,花了很長一段時間寫完,在寫論文的同時我也學(xué)到了很多關(guān)于手機游戲方面的知識,實在是獲益良多。</p><p><b>  致謝</b></p><p>  這篇論文在我的老師以及一些朋友的幫助下完成,

99、在寫這篇論文是老師教了我很多關(guān)于J2ME的知識,對我以后的發(fā)展很有幫助。我的朋友們給了我很多鼓勵和信心。在此,我感謝我的老師和幫我的同學(xué)們。</p><p><b>  參考文獻</b></p><p>  1.王興玲. SVG與矢量地圖的Web 發(fā)布技術(shù).計算機工程與應(yīng)用,2002 ,38 (10) :1~4</p><p>  2 .W3C

100、. Mobile SVG Profiles , http :/ / www. w3. org/ TR/SVGMobile/ ,2002</p><p>  3. Todd Sundsted. J2ME 走向成熟, http :/ / www-900.ibm. com/ developerWorks/ ,2002</p><p>  4. Apache Software Foundation

101、 , http :/ / xml. apache. org/batik/ ,2002</p><p>  5.Andrew Girow. TinyLine , http :/ / www. geocities. com/tinyline/ ,2002</p><p>  6.oshua Bloch. Java 高效編程指南. 北京:機械工業(yè)出版社,2001</p><p

102、>  7.Erich Gamma. 設(shè)計模式———可復(fù)用面向?qū)ο筌浖幕A(chǔ). 北京:機械工業(yè)出版社,2000</p><p>  8. 楊芙清. 軟件復(fù)用與軟件構(gòu)件技術(shù). 電子學(xué)報,1999 ,27 (2) :68~75</p><p>  9.王玨, 趙呈領(lǐng), 張朝華. 移動學(xué)習(xí)及其實現(xiàn)的幾個問題研究[ J ] . 高等函授學(xué)報( 自然科學(xué)版),2006,19(4):6-8<

103、/p><p>  10.奚雪峰, 陸衛(wèi)忠, 姚俊峰, 等. J 2 M E 平臺上移動倉儲管理系統(tǒng)設(shè)計與實現(xiàn)[ J ] . 微計算機信息,2008,24(1):38-40</p><p>  11.陸東林.J2ME開發(fā)技術(shù)原理與實踐教程[M].北京:電子工業(yè)出版社,2008</p><p>  12.榮欽科技.J2ME手機游戲設(shè)計技術(shù)與實踐[M].北京:電子工業(yè)出社,2

溫馨提示

  • 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

提交評論