畢業(yè)設(shè)計(論文)基于j2me的java游戲--撲克豪斯的開發(fā)_第1頁
畢業(yè)設(shè)計(論文)基于j2me的java游戲--撲克豪斯的開發(fā)_第2頁
畢業(yè)設(shè)計(論文)基于j2me的java游戲--撲克豪斯的開發(fā)_第3頁
畢業(yè)設(shè)計(論文)基于j2me的java游戲--撲克豪斯的開發(fā)_第4頁
畢業(yè)設(shè)計(論文)基于j2me的java游戲--撲克豪斯的開發(fā)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一前言11摘要J2MEJAVA2MICROEDITION是近年來隨著各種不同設(shè)備,尤其是移動通信設(shè)備的飛速發(fā)展而誕生的一項新的開發(fā)技術(shù)。它定位在消費性電子產(chǎn)品的應(yīng)用上,對設(shè)備的智能化、多樣化,提供了革命性的解決方案,并因其“WRITEONCE,RUNANYWHERE”的JAVA特性而提高開發(fā)的效率。隨著手機的日益普及、JAVA功能在移動設(shè)備上的實現(xiàn),JAVA應(yīng)用程序產(chǎn)生的手機增值服務(wù)逐漸體現(xiàn)出其影響力,對豐富人們的生活內(nèi)容、提供快捷的資訊起著不可忽視的作用。本論文著眼于J2ME技術(shù)的應(yīng)用,開發(fā)一款可商用的手機游戲程序撲克豪斯。本程序的界面和運作方式于臺式游戲豪斯,將老少皆宜的經(jīng)典作品移植到手機上來,為更流行的硬件平臺提供應(yīng)用軟件。本論文介紹了手機的軟硬件特性、J2ME的相關(guān)技術(shù)及本程序的結(jié)構(gòu)分析和具體功能的實現(xiàn)。關(guān)鍵字J2ME,手機游戲,JAVA,撲克豪斯ABSTRACTJ2MEISAKINDOFFASTDEVELOPINGTECHNOLOGYIMPLEMENTEDONVARIOUSDEVICESESPECIALLYMOBILECOMMUNICATIONEQUIPMENTSITFOCUSESONAPPLICATIONFORCONSUMPTIVEELECTRONICPRODUCTS,PROVIDINGREVOLUTIONARYSOLUTIONTOTHEINTELLIGENTIZATIONANDDIVERSIFICATIONOFTHEEQUIPMENTITIMPROVETHEEFFICIENCYOFTHEDEVELOPMENTPROCESSTHANKSTOITS“WRITEONCE,RUNANYWHERE”NATUREWHENCELLPHONEISGETTINGEVERMOREPOPULARNOWADAYS,WITHTHEIMPLEMENTATIONOFJAVATECHNOLOGYONMOBILEEQUIPMENT,INCREMENTOFCAPITALONCOMMUNICATIONSERVICEEXHIBITSITSFORCEONPEOPLESEVERYDAYLIFE,PROVIDINGTHEMEVERFASTINFORMATIONJUSTINHANDTHISDISSERTATIONFOCUSESONIMPLEMENTATIONOFJ2METECHNOLOGYANDHASDEVELOPEDACOMMERCIALGAMESUITERUNONMOBILEPHONESPOKERMACHINETHISAPPLICATIONINHERITSMANYCHARACTERSOFTHEOLDFASHIONEDGAMEBATTLECITYWHICHDEVELOPEDBYNINTENDOIN1980SITTRANSPORTSTHECLASSICALPRODUCTTOMOBILEPHONES,OFFERINGCORRESPONDINGSOFTWAREFORSUCHMOREPOPULARHARDWAREPLATFORMTHISDISSERTATIONINTRODUCESTHECHARACTERISTICOFNINTENDOFCMACHINEANDITSSOFTWARE,J2MEANDITSRELATIVETECHNOLOGYASWELLASTHISPROGRAMSSTRUCTUREANDANALYSISOFIMPLEMENTATIONINDETAILSJAVA手機網(wǎng)WWWCNJMNETKEYWORDSJ2ME,MOBILEGAME,JAVA,TANK,BATTLECITY12引言手機游戲成績斐然,成為IT產(chǎn)業(yè)中增長最快的部分之一縱觀IT產(chǎn)業(yè)的歷史,計算機游戲已經(jīng)成為技術(shù)創(chuàng)新背后的動者渴望更加強大的硬件計算能力;渴望不受不同的軟件的限制無論是將圖形強制在人工智能(AI)上還是網(wǎng)絡(luò)安全性。游戲開發(fā)者和玩家常常是前沿計算機技術(shù)的最早的采用者。由于他們的創(chuàng)新天性,游戲不再是由大型采購公司控制的技術(shù)產(chǎn)品游戲領(lǐng)域總是有充足的空間給那此在這方面有天分的單個創(chuàng)新者。隨著技術(shù)對游戲經(jīng)驗的促進,游戲市場持續(xù)增長。商業(yè)IT革命為我們節(jié)省了時間力之一。計算機游戲和金錢,從而提高了我們的工作水平,我們因此花費更多的時間和金錢在游戲上,來改善生活的整體質(zhì)量。甚至在當(dāng)今困難的經(jīng)濟時代,游戲仍保持快速增長,他仍然是盈利行業(yè)的組成部分。JAVA開發(fā)者應(yīng)該注意到這里蘊藏著的巨大的商機。13手機游戲特征手機游戲的盈利主要是由于它們的涉及面很廣。手機已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。他們是最普遍攜帶的個人用品中僅次于鑰匙和錢包的東西。傳統(tǒng)的臺式機游戲?qū)⒛繕?biāo)鎖定在低級趣味的人和青少年身上,而手機游戲則每個人都可以訪問的到隨時,隨地。盡管每個手機游戲都不貴,但是巨大的使用量(如每人每星期一個新游戲)將使得這個市場商機無限并且有利可圖。但是,對于開發(fā)者來說,將控制臺游戲遷移到手機游戲工程很大因為他們所面向的對象、生活方式和分布式模型都有著極大的區(qū)別。讓我們從手機游戲的需求談起吧。一個成功的手機游戲大多具有以下特征1易于學(xué)習(xí)既然手機游戲面向的是普通消費者而不是計算機高手,那么他們不可能深入的學(xué)習(xí)游戲技巧。消費者不會花幾個小時去研究一個3美元的手動操作的游戲。所以游戲必須是一下載就可以玩的。保持游戲的簡單是最基本的要求。2可中斷性多任務(wù)處理是手機生活方式的基本特征。手機用戶常常在任務(wù)(如等一個電子郵件或者等車)之間有一小段時間。而游戲、日歷管理、通訊和工作數(shù)據(jù)訪問使用的是同一個設(shè)備。所以一個好的手機游戲應(yīng)該提供短時間的娛樂功能,并且允許用戶在游戲和工作模式之間順利切換。3基于訂閱手機游戲的盈利成功取決于他們巨大的使用量。一開始開發(fā)和設(shè)計每個游戲都是昂貴的。如果一個手機游戲開發(fā)者要賺錢的話,重要的是同一個游戲引擎,多個標(biāo)題,基本的故事情節(jié)類似?;谟嗛喌挠螒蚴遣粩喈a(chǎn)生收入的最好方法。JAVA手機網(wǎng)WWWCNJMNET4豐富的社會交互不管一個游戲設(shè)計得多好,只要玩家找到了它的根本模式或者玩完了所有的游戲路徑很快就會厭煩這個游戲。對于一個基于訂閱的游戲,重要的是與別的玩家合作以增強所玩游戲的智力和隨機性。在今天紛繁復(fù)雜的多玩家游戲中具有豐富社會交互的游戲證明是成功的。5利用手機技術(shù)的優(yōu)點巨額的手機技術(shù)研發(fā)費用都花在提高設(shè)備和網(wǎng)絡(luò)的可用性和可靠性上面。因此,手機設(shè)備硬件和網(wǎng)絡(luò)協(xié)議與桌面/控制臺世界(如全球定位系統(tǒng)GPS擴展、條形碼掃描儀、和短消息服務(wù)SMS/多媒體信息服務(wù)MMS通訊)有著非常大的差別。好的手機游戲應(yīng)該利用那些更新的設(shè)備特征和網(wǎng)絡(luò)基礎(chǔ)設(shè)備的優(yōu)點。6無違法內(nèi)容既然所有年齡/性別的人群都玩手機游戲并且常常在公共/工作場合,你應(yīng)該避免明顯的暴力或者色情內(nèi)容。JAVA手機網(wǎng)WWWCNJMNET14手機游戲的類型基于以上標(biāo)準(zhǔn),最有可能成功的手機游戲就是那些臨時小游戲,它可為廣泛的玩家在所有的社交場合提供娛樂。特別是,下列類型的游戲?qū)⑹敲魈熳罹哂袣Φ挠螒?多玩家游戲這些游戲可以提供手機訪問以便建立在線游戲團體。或者,他們利用手機專有特征如多媒體通訊和基于位置的服務(wù),從而創(chuàng)建完全不同的社會結(jié)構(gòu)。好的游戲設(shè)計和管理是這種類型游戲成功的關(guān)鍵。2基于內(nèi)容的游戲這些游戲傳送版權(quán)的多媒體內(nèi)容,如名人的圖片、視頻片斷、音頻立體聲、和私人的體育節(jié)目,給那些音樂/電影/體育迷們。它成功的關(guān)鍵就是提供值得訂閱的高品質(zhì)的內(nèi)容流。3高沖擊的視頻游戲PC和臺式游戲已經(jīng)從2D進化到3D。手機游戲也會遵循這種趨勢?,F(xiàn)在已經(jīng)出現(xiàn)手機3D工具箱和聽筒。但是,3D是非常資源集中型的。他們要求開發(fā)者和圖形設(shè)計者都是專家級的。專業(yè)的商店最有可能開發(fā)這些游戲。在手機游戲的早期,大多數(shù)開發(fā)者都是想要玩轉(zhuǎn)設(shè)備、學(xué)習(xí)技巧和快速攻關(guān)的狂熱分子。但是,隨著更多的開發(fā)者加入這個行業(yè),手機游戲已經(jīng)進化成涉及到專業(yè)設(shè)計師、構(gòu)造師、開發(fā)者、產(chǎn)品經(jīng)銷商、律師、和藝術(shù)家在內(nèi)的主導(dǎo)產(chǎn)品。這是行業(yè)走向成熟的必然趨勢。盡管在某人的業(yè)余時間內(nèi)要開發(fā)和推銷簡單的游戲更加困難,但是更多的專業(yè)商店將為許多人提供更多的就業(yè)機會。15手機軟件現(xiàn)狀在信息社會中,手機及其他無線設(shè)備越來越多的走進普通百姓的工作和生活,隨著信息網(wǎng)絡(luò)化的不斷進展,手機及其他無線設(shè)備上網(wǎng)絡(luò)勢在必行。但是傳統(tǒng)手機存在以下弊端1傳統(tǒng)手機出廠時均由硬件廠商固化程序,程序不能增加、刪除,有了錯誤也不能更新、修改,若要增加新功能必須另換一部手機。2傳統(tǒng)手機訪問互聯(lián)網(wǎng)是通過WAPWIRELESSAPPLICATIONPROTOCAL,所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時、費用亦很高。而JAVA技術(shù)在無線應(yīng)用方面的優(yōu)勢非常明顯1應(yīng)用程序可按需下載,而不是購買由硬件商提供的套件,可升級空間大。2JAVA技術(shù)提供了一個類庫,它使的應(yīng)用開發(fā)商可以創(chuàng)建更為直覺、豐富的用戶界面GUI;3JAVA技術(shù)使網(wǎng)絡(luò)帶寬的應(yīng)用更為有效,因為應(yīng)用程序可以下載到器件上,并在本地運行,僅僅是在連接到服務(wù)器時才會占用網(wǎng)絡(luò)帶寬?;谝陨戏治?,JAVA手機將是未來手機的發(fā)展方向,是業(yè)界的熱點。JAVA手機網(wǎng)WWWCNJMNET16本游戲的未來看過周潤發(fā)主演的賭神都知道里的豪斯是很好玩的,也很有發(fā)展前途。一,這個游戲?qū)κ謾C的要求不高;二,這個游戲簡單;三,當(dāng)這個游戲做成網(wǎng)絡(luò)游戲時,可以是各個玩家斗智的平臺;要實現(xiàn)這點技術(shù)要求并不難。在本設(shè)計的基礎(chǔ)上再加上某些技術(shù)就可以了A網(wǎng)絡(luò)的連接B能讀能存網(wǎng)絡(luò)數(shù)據(jù)庫C牌不再是用隨機產(chǎn)生這么簡,它應(yīng)該根據(jù)玩家的積分來產(chǎn)生,這樣會更好。17手機未來的發(fā)展方向手機游戲的盈利主要是由于它們的涉及面很廣。手機已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。他們是最普遍攜帶的個人用品中僅次于鑰匙和錢包的東西。傳統(tǒng)的臺式機游戲?qū)⒛繕?biāo)鎖定在低級趣味的人和青少年身上,而手機游戲則每個人都可以訪問的到隨時,隨地。盡管每個手機游戲都不貴,但是巨大的使用量(如每人每星期一個新游戲)將使得這個市場商機無限。只要有好的游戲,就會有更廣的使用量。18游戲業(yè)務(wù)及J2ME概述雖然JAVA已經(jīng)被用到許多企業(yè)級軟體上,可是其實骨子里面還是非常適合用在嵌入式系統(tǒng)之中。JAVA平臺演進到JAVA2后,JAVA平臺分別針對不同領(lǐng)域的需求被分成四個版本,亦即J2EE、J2SE、J2ME以及JAVACARD。其中J2ME定位在消費性電子產(chǎn)品的應(yīng)用上。這個版本針對資源有限的電子消費產(chǎn)品的需求精簡核心類庫,并提供了模塊化的架構(gòu)讓不同類型產(chǎn)品能夠隨時增加支持的能力。這個版本的應(yīng)用層面相當(dāng)廣泛,會是未來JAVA平臺發(fā)展的重點項目。J2ME在設(shè)計其規(guī)格的時候,遵循著“對各種不同的裝置而造出一個單一的開發(fā)系統(tǒng)是沒有意義的事”這個基本原則。于是J2ME先將所有的嵌入式裝置大體上區(qū)分為兩種一種是運算功能有限、電力供應(yīng)也有限的嵌入式裝置比方說PDA、手機;另外一種則是運算能力相對較佳、在電力供應(yīng)上相對比較充足的嵌入式裝置比方說冷氣機、電冰箱、電視機上盒SETTOPBOX。因為這兩種型態(tài)的嵌入式裝置,所以JAVA引入了一個叫做CONFIGURATION的概念,把上述運算功能有限、電力有限的嵌入式裝置定義在CONNECTEDLIMITEDDEVICECONFIGURATIONCLDC規(guī)格之中;而另外一種裝置則規(guī)范為CONNECTEDDEVICECONFIGURATIONCDC規(guī)格。也就是說,J2ME先把所有的嵌入式裝置利用CONFIGURATION的概念區(qū)隔成兩種抽象的型態(tài)。J2ME平臺被認為是最杰出的手機游戲平臺,它為開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費者廣泛接受。它有一些非常重要的特征對所有組織都有益。因為J2ME應(yīng)用在不同設(shè)備上都是便攜式的,他們常??稍诰W(wǎng)絡(luò)上下載和執(zhí)行。如果沒有正確的防范,它則為用戶和無線通信公司冒著無數(shù)個安全的風(fēng)險。幸運的是,JAVA被設(shè)計成一種安全的語言。所有字節(jié)碼應(yīng)用在執(zhí)行之前都要校驗;JVM在執(zhí)行過程中監(jiān)督應(yīng)用的安全性和存儲違反問題。MIDPV2運行時間包括一個完全特征化的、基于域的安全管理員,它在應(yīng)用的數(shù)字簽名者鑒別的基礎(chǔ)上賦予應(yīng)用API級許可。縱觀IT產(chǎn)業(yè)的歷史,就像軍事的發(fā)展時常推動計算機的演化一樣,計算機游戲已經(jīng)成為技術(shù)創(chuàng)新背后的動力之一。計算機游戲者渴望更加強大的硬件計算能力;渴望不受不同的軟件的限制無論是將圖形強制在人工智能(AI)上還是網(wǎng)絡(luò)安全性。游戲開發(fā)者和玩家常常是前沿計算機技術(shù)的最早的采用者。由于他們的創(chuàng)新天性,游戲不再是由大型采購公司控制的技術(shù)產(chǎn)品游戲領(lǐng)域總是有充足的空間給那些在這方面有天分的單個創(chuàng)新者。手機游戲的盈利主要是由于它們的涉及面很廣。手機已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。他們是最普遍攜帶的個人用品中僅次于鑰匙和錢包的東西。傳統(tǒng)的臺式機游戲?qū)⒛繕?biāo)鎖定在低級趣味的人和青少年身上,而手機游戲則每個人都可以訪問的到隨時,隨地。盡管每個手機游戲都不貴,但是巨大的使用量(如每人每星期一個新游戲)將使得這個市場商機無限。但是,對于開發(fā)者來說,將控制臺游戲遷移到手機游戲工程很大。因為他們所面向的對象、生活方式和分布式模型都有著極大的區(qū)別。JAVA手機網(wǎng)WWWCNJMNET二開發(fā)環(huán)境及相關(guān)技術(shù)的介紹21JAVA語言的特點1平臺無關(guān)性JAVA引進虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺之間的JAVA接口。使用JAVA編寫的程序能在世界范圍內(nèi)共享。JAVA的數(shù)據(jù)類型與機器無關(guān)。2安全性JAVA的編程類似C,但舍棄了C的指針對存儲器地址的直接操作,程序運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針入侵系統(tǒng)。它提供了安全管理器,防止程序的非法訪問。JAVA手機網(wǎng)WWWCNJMNET3面向?qū)ο驤AVA吸收了C面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類中,實現(xiàn)了程序的簡潔性和便于維護性,使程序代碼可以只需一次編譯就可反復(fù)利用。4分布式JAVA建立在TCP/IP網(wǎng)絡(luò)平臺上,提供了用HTTP和FTP協(xié)議傳送和接收信息的庫函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。5健壯性JAVA致力與檢查程序在編譯和運行時的錯誤,并自動回收內(nèi)存,減少了內(nèi)存出錯的可能性。JAVA取消了C語言的結(jié)構(gòu)、指針、DEFINE語句、多重繼承、GOTO語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。23J2ME是什么據(jù)J2ME應(yīng)用程序調(diào)用的API,J2ME應(yīng)用程序分為標(biāo)準(zhǔn)應(yīng)用程序和不易移植的應(yīng)用程序兩種。據(jù)J2ME應(yīng)用程序調(diào)用的API,J2ME應(yīng)用程序分為標(biāo)準(zhǔn)應(yīng)用程序和不易移植的應(yīng)用程序兩種。術(shù)語CDC連接設(shè)備配置CLDC連接限制設(shè)備配置JREJAVA運行環(huán)境MIDPMOBILEINFORMATIONDEVICEPROFILE規(guī)范OTAOVERTHEAIR非OTA數(shù)據(jù)線、藍牙(BLUETOOTH)、紅外線(IRDA)、多媒體信息服務(wù)(MMS)、EMAIL附件23J2ME智能客戶端J2ME平臺被認為是最杰出的手機游戲平臺,它為開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費者廣泛接受。它有一些非常重要的特征對所有組織都有益24J2ME總體架構(gòu)J2ME使用配置和簡表定制JAVA運行時環(huán)境JRE。作為一個完整的JRE,J2ME由配置和簡表組成,配置決定了使用的JVM,而簡表通過添加特定于域的類來定義應(yīng)用程序。配置將基本運行時環(huán)境定義為一組核心類和一個運行在特定類型設(shè)備上的特定JVM。我們將在J2ME配置一章中詳細討論配置。簡表定義應(yīng)用程序;特別地,它向J2ME配置中添加特定于域的類,定義設(shè)備的某種作用。我們將在J2ME簡表一章中深入介紹簡表。下面的圖表描述了不同的虛擬機、配置和簡表之間的關(guān)系。它同時把J2SEAPI和它的JAVA虛擬機進行了比較。雖然J2SE虛擬機通常被稱為一種JVM,但是J2ME虛擬機、KVM和CVM都是JVM的子集。KVM和CVM均可被看作是一種JAVA虛擬機它們是J2SEJVM的壓縮版,并特定于J2ME。移動通信的時代即將來臨,通信相關(guān)待業(yè)變得前景可期,而除了移動通信的主要通信工具手機,其功能越來越強大之外,有更多的廠商相繼投入移動通信設(shè)備的生產(chǎn)與開發(fā),其平臺和操作系統(tǒng)的復(fù)雜度比目前混亂的PDA有過之而不及,除了SYMBIAN針對手機推出操作系統(tǒng)SYMBIANOS(過去稱做EPOC,)操作系統(tǒng)之外,微軟也針對手機推出操作系統(tǒng)SMARTPHONE2002STINGER,但是日前市面上的手機仍以使用廠商自行開發(fā)的操作系統(tǒng)者居多。平臺的復(fù)雜紛亂對一般用戶當(dāng)然沒什么影響,但是對于程序開發(fā)人員來說,這么多不同的程序發(fā)展平臺,光看完頭就昏了。如果每個平臺都有自己的程序?qū)懛ㄒ约俺绦驇?,那么光是看上面這些平臺至少就要學(xué)習(xí)五種以上程序的寫法。當(dāng)然,只專精一種平臺當(dāng)然是很好的事情??墒浅绦騿T不禁要說“如果我們寫出來的軟件可以在不經(jīng)過修改源代碼的情況下就能夠在這些平臺上執(zhí)行,那不是更完美嗎“對程序開發(fā)人員來說,這樣的投資報酬率當(dāng)然是最大的。要在那么多平臺上開發(fā)程序,對程序員來說的確是很大的挑戰(zhàn),如果要把所有的時間和精力放在軟件的可用性上,那么相對而言很多時候我們根本沒有那么多時間撰寫各種平臺的程序。要解決這個問題,一般來說程序員會選用一個可以跨平臺的FRAMEWORK來達成至少SOURCECODELEVEL的跨平臺。利用JAVA的“WRITEONCE,RUNANYWHERE”特性,我們可以真正達到程序只要寫一次,拿到任何平臺上都可以執(zhí)行。利用JAVA撰寫手機上的程序當(dāng)然有其缺點,最廣為人知的可能就是執(zhí)行效率的問題,JAVA在執(zhí)行速度這個議題上一直讓人詬病。不過筆者認為,隨著技術(shù)的發(fā)達,將會有更快更省電的嵌入系統(tǒng)專用CPU出現(xiàn),JAVAONE中也傳出將針對J2ME開發(fā)專用芯片,讓JAVA在手機上的程序可以跑得更快,因此效率上的總是其實是可以忽略的。更何況,當(dāng)SUN在設(shè)計J2ME的時候,也用了很多方式企圖加快JAVA在手機上的執(zhí)行速度。因此,目前的移動通信設(shè)備大廠幾乎采用J2ME平臺。搭建J2ME環(huán)境25簡單環(huán)境的搭建1、下載JDK和J2ME無線工具包(WWWSUNCOMCN)安裝SUNJDKJ2SDK1_4_0_03WINDOWSI386安裝SUNJ2MESDKJ2ME_WIRELESS_TOOLKIT1_0_3WIN2關(guān)于WIRELESSTOOLKITWTKWIRELESSTOOLKIT是SUN公司針對J2ME推出的用于手機和PALM等移動設(shè)備的開發(fā)包,是除手機廠商的專用開發(fā)包外唯一的手機模擬器開發(fā)包。它通用性高,開發(fā)出的應(yīng)用程序可保證能運行在大部分設(shè)備上,而不像專用廠商具有一定的不兼容性。雖然它沒有強大的功能和完善的調(diào)試手段,但它提供運行模擬器的最基本組件,是其他IDE需集成采用的必備元素。3,用于手機游戲開發(fā)的環(huán)境不是只建立一個JAVASDK就可以了,它還需要了一個一個庫類,叫JAVATOOLKIT。首先安裝JAVASDK再在原來的目錄下安裝JAVATOOLKIT這個新的環(huán)境就可以滿足我們的需要了。然后我們編寫一個最簡單的程序用來驗證這個環(huán)境是否可以用來編寫我們的手機程序。編寫以下代碼保存成HELLOJAVA文件。IMPORTJAVAXMICROEDITIONMIDLETIMPORTJAVAXMICROEDITIONLCDUIPUBLICCLASSHELLOEXTENDSMIDLETPRIVATEDISPLAYDISPLAYPUBLICHELLODISPLAYDISPLAYGETDISPLAYTHISPUBLICVOIDSTARTAPPTEXTBOXTNEWTEXTBOX“HELLOMIDLET“,“HELLOMIDP“,256,0DISPLAYSETCURRENTTPUBLICVOIDPAUSEAPPPUBLICVOIDDESTROYAPPBOOLEANUNCONDITIONAL啟動KTOOLBAR新建一個工程,取名HELLO。把以上文件拷到HELLO文件的目錄編譯。能通過編譯并能運行,說明這個開發(fā)環(huán)境就能滿足我們的需要了。26MIDP應(yīng)用程序MIDP應(yīng)用程序是指遵循由應(yīng)用程序主體(JAR文件)和應(yīng)用程序描述文件(JAD文件)組成。按部署方式可分OTA和非OTA兩種。MIDLET是JAVE一個類,擴展了JAVAXMICROEDITONMIDLETMIDLET抽象類。MIDLET生命周期分3種狀態(tài)運行狀態(tài),暫停狀態(tài),銷毀狀態(tài)等。JAVA手機網(wǎng)WWWCNJMNET26JAVAAPPICATIONMANAGER手機中負責(zé)調(diào)配程序運行資源的管理后臺是JAVAAPPLICATIONMANAGER。它所使用的傳輸媒體可以是紅外線、網(wǎng)絡(luò)、以及其他可用來傳輸?shù)拿襟w。JAVAAPPLICATIONMANAGER會從網(wǎng)絡(luò)上下載代表該APPLICATIONSUITE的JAR檔,接著在手機上安裝此MIDLETSUITE,然后在手機開始執(zhí)行該應(yīng)用程序。整個詳細的運作流程如圖21所示。27預(yù)先審核審核動作一般在PC上執(zhí)行,速度可以接受。為了是對安全的考慮,任何來自本地或者遠程機器,都必須經(jīng)過BYTECODE審核器的驗證,以防止程序在傳輸途中遭到惡意更改。如圖28J2ME、J2SE與J2EE之間的比較下面的圖表描述了支持J2ME應(yīng)用程序的設(shè)備,同時說明了J2ME適合JAVA平臺之處JAVA手機網(wǎng)WWWCNJMNET三J2ME手機游戲需求分析31本程序需解決的有關(guān)技術(shù)問題1游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運行不久后可能出現(xiàn)嚴重錯誤,甚至死循環(huán)。因此,其邏輯設(shè)計應(yīng)當(dāng)相當(dāng)嚴謹,需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計中。2游戲中為了美觀,適用性強,可能需要采用外部文件引入的圖片貼圖,有關(guān)貼圖,在MIDP20中提供了用于增強游戲功能的GAME包,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。3一開始就把牌全部分配好,這樣就可以簡單而有效地避免了牌的重復(fù),也可以大大地簡化了程序代碼的編寫。4牌的轉(zhuǎn)化可以用一個函數(shù)來實現(xiàn),這樣就可以使代碼更模塊化,利用也就可以更高。5牌慢慢移動的實現(xiàn)。牌的移動是用線程來實現(xiàn)的,用THREADSLEEP這個函數(shù)來作時間延遲,讓坐標(biāo)變量緩慢地變化。然后通過刷新畫圖,就會使人覺得牌是在緩慢地移動。JAVA手機網(wǎng)WWWCNJMNET6是否是要牌還是放棄(認輸),它通過向右鍵(要牌)和向左鍵(放棄)來操作的。當(dāng)點擊向右鍵時,發(fā)生點擊事伯,變量發(fā)生相應(yīng)的變化,然后觸發(fā)畫圖事件。7當(dāng)玩家都跟到5張牌時,就要判斷牌的大小了,它通過多次循環(huán),來確定其大小。8JAVA是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較C等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導(dǎo)致運行的不流暢。除開發(fā)過程中對結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器OBFUSCATOR進行程序打包后的優(yōu)化。JAVA手機網(wǎng)WWWCNJMNET以上相關(guān)技術(shù)細節(jié)和整體流程將分別在以下小節(jié)闡述。32程序流程圖MIDLETSUITE是MIDP應(yīng)用程序的最小單位,JAM負責(zé)將手機內(nèi)的MIDLETSUITE以圖形V化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDLETSUITE,一旦選取了某個MIDLETSUITE,操作系統(tǒng)就會激活KVM執(zhí)行里面的MIDLET。MIDLET及相關(guān)的支持類組成了MIDP應(yīng)用程序的實際內(nèi)容。每個MIDLET都必須繼承JAVAXMICROEDITIONMIDLETMIDLET這個抽象類。在MIDP規(guī)格中定義了MIDLET的生命周期,以及可以存在的三種狀態(tài),包括PAUSED、ACTIVE以及DESTROYED,每一個MIDLET在任何時刻只可能處于其中的一個狀態(tài)這JAVA手機網(wǎng)WWWCNJMNETV三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示本程序采用面向?qū)ο蟮脑O(shè)計模式,對游戲中的所有物體賦予對象的概念和屬性。運行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入牌的圖文件,對背景的所有物體進行繪圖。在主程序運行的線程中,畫面刷新將以一定的頻率采用雙緩沖技術(shù)對屏幕重繪,實時反映整個游戲的進行狀態(tài)。用戶控制的牌運行在主線程中,隨屏幕刷新的頻率而移動。牌將在游戲開始時逐漸新增線程,每增加一個牌對象就新增加一條線程,一旦線程數(shù)滿到最大值(本程序暫設(shè)置最大值為幾千多個),就不允許線程的再增加。這個線程問題就是本設(shè)計的一個BUG。本程序主要的流程如圖32所示JAVA手機網(wǎng)WWWCNJMNET流程簡略解釋程序一開始執(zhí)行是先從主類TESTJAVA來開始。這個類從MIDLET類繼承過來,在程序的開始函數(shù)STARTAPP中我用NAVIGATORCURRENTNAVIGATORMAIN_SCREEN這個等式把程序的執(zhí)行轉(zhuǎn)到JAVA手機網(wǎng)WWWCNJMNETMAINSCREENJAVA文件程序的畫面來。而這個類繼承LIST,這個LIST類可以更方便地控制程序的選擇。在這個文件中列出一個菜單供用戶去選擇,如下開始設(shè)定版權(quán)聲明離開JAVA手機網(wǎng)WWWCNJMNET當(dāng)點擊開始時,程序轉(zhuǎn)到GAMESCREEN這個類去。GAMESCREEN這個類繼承CANVAS,CANVAS專門是用來控制游戲的。里面包括屏幕的繪圖,一些變量的初始化。當(dāng)點擊設(shè)定時,程序轉(zhuǎn)到SETSCREEN這個類。這個類用于登錄幫助網(wǎng)站的,當(dāng)然這個是需要網(wǎng)絡(luò)支持的。當(dāng)點擊版權(quán)聲明時,程序轉(zhuǎn)到COPYSCREEN這個類,這個類繼承ALERT,它用于描述版權(quán)的一些信息。當(dāng)點擊離開時,程序退出TEST類。33繪圖與MIDP20新增的GAMECANVAS包331提供低級繪制的CANVAS類為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是CANVAS抽象類進行繪圖。從程序開發(fā)的觀點看,CANVAS類可與高級SCREEN類交互,程序可在需要時在CANVAS中摻入高級類的組件。CANVAS提供了鍵盤事件、指點桿事件(如果設(shè)備支持),并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù)。鍵盤事件由鍵代碼指定,但這樣控制游戲會導(dǎo)致缺乏通用性,并不是每個設(shè)備的鍵盤布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。本程序中,操縱用戶坦克運行的按鍵都定義為游戲控制鍵,這樣便能適應(yīng)所有的機器。JAVA手機網(wǎng)WWWCNJMNET332GRAPHICS類GRAPHICS類提供了簡單的2D繪圖功能。它具有24位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。程序只能在PAINT函數(shù)中使用GRAPHICS繪制,GAMECANVAS可調(diào)用GETGRAPHICS函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。其對象會被傳給CANVAS的PAINT函數(shù),以便最終顯示。333PNG格式PNGPORTABLENETWORKGRAPHICS格式是MIDLET唯一支持的圖象格式,PNG具體格式由PNGSPECIFICATION,VERSION10定義的。PNG格式提供透明背景的圖象,這對繪制游戲畫面和被操縱主角極有幫助。坦克之間或與障礙物碰撞時就不會因為背景有特定的顏色,顯示出的效果像貼上的圖片而缺乏真實感,物體之間輕微重疊時最上層圖片也不會覆蓋超過其有效象素外的部分。PNG格式圖片中包含許多定義其圖片特性的冗余部分CHUNKS。這些代碼包含在每一個單獨的PNG格式圖象中,然而如果將多個PNG圖象合并在一張幅面稍大一些的整圖中,多個CHUNKS就可以得到精簡,圖片的大小可以得到控制。使用IMAGE類中的CREATEIMAGE函數(shù)可從整圖中分割出所需要的元素。在GAME包中的TILEDLAYER和SPRITE類都整合了這樣的功能。本程序中的地圖元素都集成在一張TILEPNG圖片中,實現(xiàn)了方便的管理和程序體積的精簡。JAVA手機網(wǎng)WWWCNJMNET334有關(guān)繪圖的一些技術(shù)在沒有MIDP20前,進行游戲繪圖一般需要手動編程使用雙緩沖。需要在PAINT方法內(nèi)所想要畫的圖形畫在一張預(yù)先準(zhǔn)備好的背景,等所有繪圖操作都完成后再將背景的數(shù)據(jù)拷貝到實際的屏幕上。IMAGE類提供了一個建立背景的靜態(tài)方法CREATEIMAGEINTWIDTH,INTHEIGHT,再利用GETGRAPHICS方法取得屬于這個背景的GRAPHICS對象,所進行的繪圖操作都會作用在背景上,等到全部的繪圖操作完成后,再調(diào)用DRAWIMAGE方法將背景的數(shù)據(jù)復(fù)制到實際顯示的屏幕上。這樣的技術(shù)在繪制動畫時特別有用。繪制動畫時經(jīng)常需要不斷地更新畫面,而更新畫面的操作就是先將屏幕以FILLRECT的方式清除,再將下一張圖片畫在屏幕上,然而反復(fù)的清除及重繪會造成屏幕的閃爍現(xiàn)象(FLICKER),因此使用雙重緩沖的好處就是在背景進行這個清除及重繪的操作,再將完成的繪圖拷貝到屏幕上,由于用戶看不到清除的操作,因此就不會出現(xiàn)閃爍的現(xiàn)象了。不過在某些MIDP的實現(xiàn)上已經(jīng)加上了雙重緩沖的支持,因此在處理前應(yīng)先利用CANVAS類的ISDOUBLEBUFFER方法來判斷。37內(nèi)存使用的最佳化通常在MIDP應(yīng)用程序的手機執(zhí)行環(huán)境中,所牽涉的內(nèi)存有下列三種應(yīng)用程序存儲內(nèi)存JAVA手機網(wǎng)WWWCNJMNETRECORDSTORE存儲內(nèi)存執(zhí)行時期內(nèi)存JAVAHEAP其中前兩種是持久性的內(nèi)存,關(guān)閉電源后還能保持數(shù)據(jù)的正確性,通常這兩種內(nèi)存所能存儲的容量是合并計算的,這個上限對每種手機都不一樣,大部分在一兩百KB內(nèi)。在這樣的情況下需要在不影響原有功能的情況下適當(dāng)?shù)目s減JAR文件的大小,除了可以克服內(nèi)存空間的限制外,也能大幅度縮短下載的時間(費用也降低了),勢必會有更多的人愿意下載所開發(fā)的程序。其方法有第一,就是盡量縮短命名的長度。在應(yīng)用程序內(nèi),對于所建立的類、接口、方法及變量名而言,都需要賦予一個識別的名稱,所命名的名稱每多一個字符就會在類文件內(nèi)多產(chǎn)生一個字節(jié),對于一個較復(fù)雜的應(yīng)用程序而言就會增加為數(shù)不小的數(shù)據(jù)量。所有這些可以借助混淆器來幫助實現(xiàn)。JAVA手機網(wǎng)WWWCNJMNET第二是減少復(fù)雜的程序結(jié)構(gòu),為一些共同的行為建立一個抽象類ABSTRACTCLASS來表示繼承的子類的共通性。第三是減少圖形數(shù)據(jù)的大小。將PNG格式的小分辨率圖象合并在一張大的高分辨率圖象中,由于減少了CHUNKS,將比合并前的總大小減少許多。36混淆器OBFUSCATOR的使用JAVA語言并沒有完全編譯成二進制可執(zhí)行文件,編譯出的CLASS文件是一種介于源程序和二進制之間的一中基于半解釋的字節(jié)碼,需要虛擬機來執(zhí)行。它包括了所有的信息。然而這樣會導(dǎo)致CLASS很容易被反編譯為源代碼,從而不能保護作者的知識成果。目前流行的如DECODE,JAD等反編譯工具可以以很快的速度生成源文件。如果不加以施行有效的措施,將造成嚴重的后果。JAVA手機網(wǎng)WWWCNJMNET由此引入混淆器的概念?;煜鲗⒋a中的所有變量、函數(shù)、類的名稱變?yōu)楹喍痰挠⑽淖帜复?,如果缺乏相?yīng)的函數(shù)名指示和程序注釋,即使被反編譯,也將難以閱讀。混淆器的作用不僅僅是保護代碼,它也有精簡編譯后程序大小的作用。由于以上介紹的減少變量、函數(shù)的命名長度的關(guān)系,編譯后也會從CLASS文件中減少這些冗余的信息?;煜?,體積大約能減少25,這對當(dāng)前費用較貴的無線網(wǎng)絡(luò)傳輸是有一定意義的。為了能與各種IDE集成,就像JAVA2SDK一樣,混淆器采用命令行參數(shù)的形式,以便可被其調(diào)用。目前流行的OBFUSCATOR有RETROGUARD等。37模擬器的相關(guān)調(diào)試IDE整合的WIRELESSTOOLKIT提供了許多在運行時監(jiān)視運行狀態(tài)的工具。包括內(nèi)存狀況的檢測(手機上的內(nèi)存空間十分有限,必須時刻關(guān)注機載內(nèi)存是否大于程序所能使用到的最大可能的內(nèi)存空間),網(wǎng)絡(luò)狀況的檢測,運行函數(shù)的跟蹤等。如圖34,是內(nèi)存跟蹤測試隨時間變化的調(diào)試器。其中,允許強制垃圾回收GARBAGECOLLECTION。由于JAVA語言中,不像許多其他的如C語言,不需要指定回收函數(shù)中特定不使用的資源,資源回收機制將自動清空無效變量占用的空間。在程序運行中也可以調(diào)用SYSTEM類的GC函數(shù)手動收回廢棄的內(nèi)存。四程序分析和編寫手機代碼41游戲進入前的選擇每個MIDLET程序都必須有一個主類,該類必須繼承自MIDLET。它控制著整個程序的運行,并且可以通過相應(yīng)函數(shù)從程序描述文件中獲取相關(guān)的信息。該類中擁有可以管理程序的創(chuàng)建、開始、暫停(手機中很可能有正在運行程序卻突然來電的情況,這時應(yīng)進入暫停狀態(tài)。)、結(jié)束的函數(shù)。本設(shè)計程序進入時,首先載入畫面的不是游戲運行狀態(tài),而是提供選項,當(dāng)選擇開始時正式運行。因此,在MAINSCREEN的構(gòu)造函數(shù)中分配了LIST類,即選項畫面的內(nèi)存空間。在STARTAPP函數(shù)中,隨即調(diào)用了DISPLABLE的SETCURRENT函數(shù)將當(dāng)前屏幕設(shè)置為NAVIGATORMAIN_SCREEN。在版權(quán)聲明界面前,建造了一個ALERT類。ALERT對象用于顯示提示、警告,還有版權(quán)信息等告之用戶信息的臨時閃現(xiàn)的屏幕,它可作為SETCURRENT的參數(shù),提前顯示在最終需要顯示的屏幕前。當(dāng)程序轉(zhuǎn)到GAMESCREEN時,畫面將永久顯示游戲本身,直到用戶點擊相應(yīng)按鈕手動結(jié)束。但是當(dāng)顯示的畫面元素超過一屏大小時,將自動轉(zhuǎn)換為永久狀態(tài)。GAMESCREEN繼承了接口COMMANDLISTENER,這樣,就可以使用高級界面的COMMAND按鈕。繼承了COMMANDLISTENER的類必須擁有COMMANDACTION,以決定對按鍵采取什么樣的行為。即按鈕事件觸發(fā)后需執(zhí)行的函數(shù)。在設(shè)置好COMMANDLISTENER后,需要調(diào)用SETCOMMANDLISTENER以將按鈕事件激活。鍵盤事件中,可用GETCOMMANDTYPE返回的COMMAND類型來確定選擇的是什么按鈕。MAINSCREEN繼承了LIST類,用于顯示列表選項,使用其APPEND函數(shù)可將選項加入到列表中。GETSELECTINDEX可檢測到選擇的項目的序號,序號從0開始遞增。其中,當(dāng)選擇第一項時將載入正式游戲畫面GAMESCREEN類,第二項將顯示轉(zhuǎn)到設(shè)定畫面,第三項用來顯示用戶信息,版權(quán)聲明等。第四項是離開游戲選項。42主游戲邏輯及其涉及到的若干類421程序的菜單選項這個寫在MAINSCREENJAVA文件中,這個類繼承LIST。同時也繼承了接口COMMANDLISTENER,這樣,就可以使用高級界面的COMMAND按鈕。繼承了COMMANDLISTENER的類必須擁有COMMANDACTION,以決定對按鍵采取什么樣的行為。即按鈕事件觸發(fā)后需執(zhí)行的函數(shù)。在設(shè)置好COMMANDLISTENER后,需要調(diào)用SETCOMMANDLISTENER以將按鈕事件激活。用APPEND方法來加入菜單APPEND“開始“,NULLJAVA手機網(wǎng)WWWCNJMNETAPPEND“設(shè)定“,NULLAPPEND“版權(quán)聲明“,NULLAPPEND“離開“,NULLSETCOMMANDLISTENERTHIS再用GETSTRINGINT函數(shù)來獲得菜單的選項。MAINSCREENJAVA文件IMPORTJAVAXMICROEDITIONLCDUIPUBLICCLASSMAINSCREENEXTENDSLISTIMPLEMENTSCOMMANDLISTENERPRIVATESTATICDISPLAYABLEINSTANCESYNCHRONIZEDPUBLICSTATICDISPLAYABLEGETINSTANCEIFINSTANCENULLINSTANCENEWMAINSCREENRETURNINSTANCEPRIVATEMAINSCREENJAVA手機網(wǎng)WWWCNJMNETSUPER“進入GAME“,IMPLICIT/菜單選擇JAVA手機網(wǎng)WWWCNJMNETAPPEND“開始“,NULLAPPEND“設(shè)定“,NULLAPPEND“版權(quán)聲明“,NULLJAVA手機網(wǎng)WWWCNJMNETAPPEND“離開“,NULL/事件偵聽SETCOMMANDLISTENERTHISPUBLICVOIDCOMMANDACTIONCOMMANDC,DISPLAYABLES/事件偵聽STRINGCMDGETSTRINGGETSELECTEDINDEXJAVA手機網(wǎng)WWWCNJMNET/把得到的值傳給程序控制器,用程序控制器來決定指引程序的執(zhí)行。NAVIGATORFLOWCMD422游戲的設(shè)定這個寫在SETSCREENJAVA文件中,而這個類繼承FORM類,同時也繼承了接口COMMANDLISTENER,這樣,就可以使用高級界面的TEXTFIELD按鈕。繼承了COMMANDLISTENER的類必須擁有COMMANDACTION,以決定對TEXTFIELD值獲取采等行為。在設(shè)置好COMMANDLISTENER后,需要調(diào)用SETCOMMANDLISTENER函數(shù)來把值傳入程序中。SETSCREENJAVA文件IMPORTJAVAXMICROEDITIONLCDUIJAVA手機網(wǎng)WWWCNJMNETPUBLICCLASSSETSCREENEXTENDSFORMJAVA手機網(wǎng)WWWCNJMNET/繼承COMMANDLISTENER接口IMPLEMENTSCOMMANDLISTENERJAVA手機網(wǎng)WWWCNJMNETPRIVATESTATICDISPLAYABLEINSTANCESYNCHRONIZEDPUBLICSTATICDISPLAYABLEGETINSTANCEIFINSTANCENULLINSTANCENEWSETSCREENRETURNINSTANCE/定義TEXTFIELD(文本輸入框)TEXTFIELDURLGAUGEVOLUMEPRIVATESETSCREENSUPER“設(shè)定“JAVA手機網(wǎng)WWWCNJMNETURLNEWTEXTFIELD“請輸入服務(wù)器位置“,“SOCKET/12700199“,40,TEXTFIELDURLAPPENDURLVOLUMENEWGAUGE“音量“,TRUE,10,3/軟鍵菜單ADDCOMMANDNEWCOMMAND“輔助說明“,COMMANDHELP,1JAVA手機網(wǎng)WWWCNJMNETADDCOMMANDNEWCOMMAND“返回“,COMMANDBACK,1/事件偵聽SETCOMMANDLISTENERTHISPUBLICVOIDCOMMANDACTIONCOMMANDC,DISPLAYABLESJAVA手機網(wǎng)WWWCNJMNETNAVIGATORFLOWCGETLABEL423游戲中的幫助和程序控制器首先調(diào)用HELPSCREEN類,然后賦一個值輔助說明給NAVIGATOR類,當(dāng)NAVIGATOR接收到這個值時,就顯示幫助字符串。HELPSCREENJAVAIMPORTJAVAXMICROEDITIONLCDUIPUBLICCLASSHELPSCREENEXTENDSFORMIMPLEMENTSCOMMANDLISTENERJAVA手機網(wǎng)WWWCNJMNETPUBLICHELPSCREENSTRINGCSUPER“輔助說明“APPENDADDCOMMANDNEWCOMMAND“返回“,COMMANDBACK,1SETCOMMANDLISTENERTHISPUBLICVOIDCOMMANDACTIONCOMMANDC,DISPLAYABLESNAVIGATORFLOWCGETLABEL這個寫在NAVIGATORJAVA里,它接收SETSCREEN,MAINSCREEN等類傳過來的值。然后根據(jù)它觸發(fā)的按鈕事件,來調(diào)用相對應(yīng)的事件。/NAVIGATORJAVAIMPORTJAVAXMICROEDITIONLCDUIJAVA手機網(wǎng)WWWCNJMNETIMPORTJAVAXMICROEDITIONMIDLETIMPORTJAVAUTILPUBLICCLASSNAVIGATORFINALPUBLICSTATICINTMAIN_SCREEN1FINALPUBLICSTATICINTGAME_SCREEN2FINALPUBLICSTATICINTSET_SCREEN3FINALPUBLICSTATICINTGAME_HELP_SCREEN4FINALPUBLICSTATICINTSET_HELP_SCREEN5PUBLICSTATICMIDLETMIDLETJAVA手機網(wǎng)WWWCNJMNETPUBLICSTATICDISPLAYDISPLAYPUBLICSTATICINTCURRENT/自定義一個類/重載函數(shù)PUBLICSTATICVOIDSHOWOBJECTOBJSWITCHCURRENTCASEMAIN_SCREENDISPLAYSETCURRENTMAINSCREENGETINSTANCEBREAKCASEGAME_SCREENDISPLAYSETCURRENTGAMESCREENGETINSTANCEJAVA手機網(wǎng)WWWCNJMNETJAVA手機網(wǎng)WWWCNJMNETBREAKJAVA手機網(wǎng)WWWCNJMNETCASESET_SCREENDISPLAYSETCURRENTSETSCREENGETINSTANCEBREAKCASEGAME_HELP_SCREENDISPLAYSETCURRENTNEWHELPSCREENSTRINGOBJBREAKCASESET_HELP_SCREENDISPLAYSETCURRENTNEWHELPSCREENSTRINGOBJJAVA手機網(wǎng)WWWCNJMNETBREAKPUBLICSTATICVOIDFLOWSTRINGCMDSWITCHCURRENTCASEMAIN_SCREENIFCMDEQUALS“開始“CURRENTGAME_SCREENSHOWNULLELSEIFCMDEQUALS“設(shè)定“CURRENTSET_SCREENSHOWNULLELSEIFCMDEQUALS“版權(quán)聲明“DISPLAYSETCURRENTCOPYSCREENGETINSTANCEELSEIFCMDEQUALS“離開“JAVA手機網(wǎng)WWWCNJMNETMIDLETNOTIFYDESTROYEDBREAKCASEGAME_SCREENIFCMDEQUALS“輔助說明“CURRENTGAME_HELP_SCREENSHOW“游戲的操作方式向右鍵要牌,向左鍵放棄順子并同花最大,其次四張相同的牌,順子,再次三張相同的牌和兩個到順子,再次到同花“ELSEIFCMDEQUALS“返回“CURRENTMAIN_SCREENJAVA手機網(wǎng)WWWCNJMNETSHOWNULLBREAKJAVA手機網(wǎng)WWWCNJMNETCASESET_SCREENIFCMDEQUALS“輔助說明“JAVA手機網(wǎng)WWWCNJMNETCURRENTSET_HELP_SCREENSHOW“設(shè)定方式“ELSEIFCMDEQUALS“返回“CURRENTMAIN_SCREENSHOWNULLBREAKCASEGAME_H

溫馨提示

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

最新文檔

評論

0/150

提交評論