【正文】
畢業(yè)設(shè)計(jì)(論文)摘 要J2ME(Java 2 Micro Edition) 是近年來隨著各種不同設(shè)備,尤其是移動(dòng)通信設(shè)備的飛速發(fā)展而誕生的一項(xiàng)新的開發(fā)技術(shù)。它定位在消費(fèi)性電子產(chǎn)品的應(yīng)用上,對(duì)設(shè)備的智能化、多樣化,提供了革命性的解決方案,并因其“Write Once, run anywhere”的Java特性而提高開發(fā)的效率。隨著手機(jī)的日益普及、Java功能在移動(dòng)設(shè)備上的實(shí)現(xiàn),Java應(yīng)用程序產(chǎn)生的手機(jī)增值服務(wù)逐漸體現(xiàn)出其影響力,對(duì)豐富人們的生活內(nèi)容、提供快捷的資訊起著不可忽視的作用。本論文著眼于J2ME技術(shù)的應(yīng)用,開發(fā)一款可商用的手機(jī)游戲程序——坦克大戰(zhàn)。本程序的界面和運(yùn)作方式繼承于日本任天堂公司在20世紀(jì)80年代開發(fā)的Battle City游戲,將老少皆宜的經(jīng)典作品移植到手機(jī)上來,為更流行的硬件平臺(tái)提供應(yīng)用軟件。本論文介紹了任天堂紅白機(jī)的軟硬件特性、J2ME的相關(guān)技術(shù)及本程序的結(jié)構(gòu)分析和具體功能的實(shí)現(xiàn)。關(guān)鍵詞 J2ME 手機(jī)游戲 Java 坦克大戰(zhàn)Abstract:J2ME is a kind of fast developing technology implemented on various devices especially mobile munication equipments. It focuses on application for consumptive electronic products, providing revolutionary solution to the intelligentization and diversification of the equipment. It improve the efficiency of the development process thanks to its “Write Once, run anywhere” nature.When cell phone is getting ever more popular nowadays, with the implementation of Java technology on mobile equipment, increment of capital on munication service exhibits its force on people’s everyday life, providing them ever fast information just in hand. This dissertation focuses on implementation of J2ME technology and has developed a mercial game suite run on mobile phones—Tank. This application inherits many characters of the old fashioned game Battle City which developed by Nintendo in 1980s. It transports the classical product to mobile phones, offering corresponding software for such more popular hardware platform.This dissertation introduces the characteristic of Nintendo FC machine and its software, J2ME and its relative technology as well as this program’s structure and analysis of implementation in details. Keywords: J2ME Mobile game Java Tank Battle City1. 引 言 手機(jī)軟件現(xiàn)狀 在信息社會(huì)中,手機(jī)及其他無線設(shè)備越來越多的走進(jìn)普通百姓的工作和生活,隨著信息網(wǎng)絡(luò)化的不斷進(jìn)展,手機(jī)及其他無線設(shè)備上網(wǎng)絡(luò)勢在必行。但是傳統(tǒng)手機(jī)存在以下弊端:1. 傳統(tǒng)手機(jī)出廠時(shí)均由硬件廠商固化程序,程序不能增加、刪除,有了錯(cuò)誤也不能更新、修改,若要增加新功能必須另換一部手機(jī)。2. 傳統(tǒng)手機(jī)訪問互聯(lián)網(wǎng)是通過WAP(Wireless Application Protocal),所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時(shí)、費(fèi)用亦很高。而Java技術(shù)在無線應(yīng)用方面的優(yōu)勢非常明顯:1. 應(yīng)用程序可按需下載,而不是購買由硬件商提供的套件,可升級(jí)空間大。2. Java技術(shù)提供了一個(gè)類庫,它使的應(yīng)用開發(fā)商可以創(chuàng)建更為直覺、豐富的用戶界面(GUI);3. Java技術(shù)使網(wǎng)絡(luò)帶寬的應(yīng)用更為有效,因?yàn)閼?yīng)用程序可以下載到器件上,并在本地運(yùn)行,僅僅是在連接到服務(wù)器時(shí)才會(huì)占用網(wǎng)絡(luò)帶寬?;谝陨戏治觯琂ava手機(jī)將是未來手機(jī)的發(fā)展方向,是業(yè)界的熱點(diǎn)。 游戲業(yè)務(wù)及J2ME概況[1] Java平臺(tái)的結(jié)構(gòu)雖然 Java 已經(jīng)被用到許多企業(yè)級(jí)軟體上,可是其實(shí)骨子里面還是非常適合用在嵌入式系統(tǒng)之中。Java平臺(tái)演進(jìn)到Java2后,Java平臺(tái)分別針對(duì)不同領(lǐng)域的需求被分成四個(gè)版本,亦即J2EE、J2SE、J2ME以及JavaCard(其結(jié)構(gòu)示意圖見圖11)。其中J2ME定位在消費(fèi)性電子產(chǎn)品的應(yīng)用上。這個(gè)版本針對(duì)資源有限的電子消費(fèi)產(chǎn)品的需求精簡核心類庫,并提供了模塊化的架構(gòu)讓不同類型產(chǎn)品能夠隨時(shí)增加支持的能力。這個(gè)版本的應(yīng)用層面相當(dāng)廣泛,會(huì)是未來Java平臺(tái)發(fā)展的重點(diǎn)項(xiàng)目。J2ME 在設(shè)計(jì)其規(guī)格的時(shí)候,遵循著“對(duì)各種不同的裝置而造出一個(gè)單一的開發(fā)系統(tǒng)是沒有意義的事”這個(gè)基本原則。于是 J2ME 先將所有的嵌入式裝置大體上區(qū)分為兩種:一種是運(yùn)算功能有限、電力供應(yīng)也有限的嵌入式裝置(比方說PDA 、手機(jī));另外一種則是運(yùn)算能力相對(duì)較佳、在電力供應(yīng)上相對(duì)比較充足的嵌入式裝置 (比方說冷氣機(jī)、電冰箱、電視機(jī)上盒 (settop box))。因?yàn)檫@兩種型態(tài)的嵌入式裝置,所以Java 引入了一個(gè)叫做Configuration 的概念,把上述運(yùn)算功能有限、電力有限的嵌入式裝置定義在Connected Limited Device Configuration(CLDC)規(guī)格之中;而另外一種裝置則規(guī)范為 Connected Device Configuration(CDC)規(guī)格。也就是說, J2ME 先把所有的嵌入式裝置利用Configuration 的概念區(qū)隔成兩種抽象的型態(tài)。J2ME平臺(tái)被認(rèn)為是最杰出的手機(jī)游戲平臺(tái),它為開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費(fèi)者廣泛接受。它有一些非常重要的特征對(duì)所有組織都有益。因?yàn)镴2ME應(yīng)用在不同設(shè)備上都是便攜式的,他們常??稍诰W(wǎng)絡(luò)上下載和執(zhí)行。如果沒有正確的防范,它則為用戶和無線通信公司冒著無數(shù)個(gè)安全的風(fēng)險(xiǎn)。幸運(yùn)的是,Java被設(shè)計(jì)成一種安全的語言。所有字節(jié)碼應(yīng)用在執(zhí)行之前都要校驗(yàn);JVM在執(zhí)行過程中監(jiān)督應(yīng)用的安全性和存儲(chǔ)違反問題。MIDP v2 運(yùn)行時(shí)間包括一個(gè)完全特征化的、基于域的安全管理員,它在應(yīng)用的數(shù)字簽名者鑒別的基礎(chǔ)上賦予應(yīng)用API級(jí)許可??v觀IT產(chǎn)業(yè)的歷史,就像軍事的發(fā)展時(shí)常推動(dòng)計(jì)算機(jī)的演化一樣,計(jì)算機(jī)游戲已經(jīng)成為技術(shù)創(chuàng)新背后的動(dòng)力之一。計(jì)算機(jī)游戲者渴望更加強(qiáng)大的硬件計(jì)算能力;渴望不受不同的軟件的限制——無論是將圖形強(qiáng)制在人工智能(AI)上 還是網(wǎng)絡(luò)安全性。游戲開發(fā)者和玩家常常是前沿計(jì)算機(jī)技術(shù)的最早的采用者。由于他們的創(chuàng)新天性,游戲不再是由大型采購公司控制的技術(shù)產(chǎn)品——游戲領(lǐng)域總是有充足的空間給那些在這方面有天分的單個(gè)創(chuàng)新者。手機(jī)游戲的盈利主要是由于它們的涉及面很廣。手機(jī)已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。他們是最普遍攜帶的個(gè)人用品中僅次于鑰匙和錢包的東西。傳統(tǒng)的臺(tái)式機(jī)游戲?qū)⒛繕?biāo)鎖定在低級(jí)趣味的人和青少年身上,而手機(jī)游戲則每個(gè)人都可以訪問的到——隨時(shí),隨地。盡管每個(gè)手機(jī)游戲都不貴,但是巨大的使用量(如:每人每星期一個(gè)新游戲)將使得這個(gè)市場商機(jī)無限。但是,對(duì)于開發(fā)者來說,將控制臺(tái)游戲遷移到手機(jī)游戲工程很大。因?yàn)樗麄兯嫦虻膶?duì)象、生活方式和分布式模型都有著極大的區(qū)別。一個(gè)成功的手機(jī)游戲大多具有以下特征:[4]易于學(xué)習(xí): 既然手機(jī)游戲面向的是普通消費(fèi)者而不是計(jì)算機(jī)專家,那么他們不可能深入的學(xué)習(xí)游戲技巧。消費(fèi)者不會(huì)花幾個(gè)小時(shí)去研究一個(gè)3元的手動(dòng)操作的游戲。保持游戲的簡單是最基本的要求。 可中斷性: 多任務(wù)處理是手機(jī)生活方式的基本特征。手機(jī)用戶常常在任務(wù)(如等一個(gè)電子郵件或者等車)之間有一小段時(shí)間。而游戲、日歷管理、通訊和工作數(shù)據(jù)訪問使用的是同一個(gè)設(shè)備。所以一個(gè)好的手機(jī)游戲應(yīng)該提供短時(shí)間的娛樂功能,并且允許用戶在游戲和工作模式之間順利切換。 基于訂閱:手機(jī)游戲的盈利成功取決于他們巨大的使用量。一開始開發(fā)和設(shè)計(jì)每個(gè)游戲都是昂貴的。如果一個(gè)手機(jī)游戲開發(fā)者要贏利的話,重要的是:同一個(gè)游戲引擎,多個(gè)標(biāo)題,基本的故事情節(jié)類似?;谟嗛喌挠螒蚴遣粩喈a(chǎn)生收入的最好方法。 豐富的社會(huì)交互: 不管一個(gè)游戲設(shè)計(jì)得多好,只要玩家找到了它的根本模式或者玩完了所有的游戲路徑很快就會(huì)厭煩這個(gè)游戲。對(duì)于一個(gè)基于訂閱的游戲,重要的是與別的玩家合作以增強(qiáng)所玩游戲的智力和隨機(jī)性。在今天紛繁復(fù)雜的多玩家游戲中具有豐富社會(huì)交互的游戲證明是成功的。 利用手機(jī)技術(shù)的優(yōu)點(diǎn): 巨額的手機(jī)技術(shù)研發(fā)費(fèi)用都花在提高設(shè)備和網(wǎng)絡(luò)的可用性和可靠性上面。因此,手機(jī)設(shè)備硬件和網(wǎng)絡(luò)協(xié)議與桌面/控制臺(tái)世界(如全球定位系統(tǒng)(GPS)擴(kuò)展、條形碼掃描儀、和短消息服務(wù)(SMS)/多媒體信息服務(wù)(MMS)通訊)有著非常大的差別。好的手機(jī)游戲應(yīng)該利用那些更新的設(shè)備特征和網(wǎng)絡(luò)基礎(chǔ)設(shè)備的優(yōu)點(diǎn)。 無違法內(nèi)容:既然所有年齡/性別的人群都玩手機(jī)游戲并且常常在公共/工作場合,就應(yīng)該避免明顯的暴力或者色情內(nèi)容。 任天堂(Nintendo)的8位FC機(jī)器和Battle City背景介紹FC(Family Computer)主機(jī)在歐美又稱Nintendo Entertainment System(可譯作任天堂娛樂平臺(tái)即NES)。FC主機(jī)在游戲業(yè)界造成的巨大沖擊眾所周知,這款主機(jī)在當(dāng)時(shí)事實(shí)上幾乎占領(lǐng)了世界各地多個(gè)國家的整個(gè)游戲市場,并使得逐漸沒落的北美游戲市場再度復(fù)蘇。這款主機(jī)的性能比當(dāng)時(shí)的多數(shù)主機(jī)都要強(qiáng)大,而價(jià)格上卻便宜得多。主機(jī)所采用得處理器為CMOS 6502,一款已經(jīng)淘汰的70年代中期產(chǎn)品。由于其價(jià)格便宜且極易使用,經(jīng)過任天堂的改造后又煥發(fā)了全新活力。6502 芯片cpu 主頻為8 bit,12 MHz,內(nèi)存8k,畫面 52色,同屏最多顯示其中的13色,聲音2個(gè)矩波,1個(gè)三角波,1個(gè)雜音,1個(gè)PCM音頻(見圖12)。Battle City是其發(fā)售卡帶中的一款力作,設(shè)置了35個(gè)關(guān)卡,可以雙人操縱,畫面設(shè)置了若干種類的建筑物和阻擋物,以消滅所有敵人為通關(guān)條件,并有接寶物等增加游戲效果的設(shè)置,畫面精美,音效杰出,在PC機(jī)的80386處理器仍未面世的當(dāng)時(shí),能在硬件上運(yùn)行這樣的2D程序不得不令人驚嘆,難怪常有人說游戲程序是最大限度發(fā)揮硬件水平的載體。其游戲界面如圖13所示。 80年代中期的FC機(jī)器 Battle City的界面 本章小結(jié)引言和第一章中介紹了手機(jī)在無線應(yīng)用方向的當(dāng)今概況,并介紹了游戲業(yè)務(wù)在當(dāng)前社會(huì)的發(fā)展?jié)摿Α7治隽薐2ME在手機(jī)軟件開發(fā)中起的重要作用,描述了本論文的相關(guān)背景。2. 開發(fā)環(huán)境及相關(guān)技術(shù)的介紹 開發(fā)環(huán)境操作系統(tǒng):Microsoft Windows XP程序語言:J2ME開發(fā)包: Java Development Kit Wireless Tool Kit IDE: Java語言的特點(diǎn)[2]1. 平臺(tái)無關(guān)性Java引進(jìn)虛擬機(jī)原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)之間的Java接口。使用Java編寫的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類型與機(jī)器無關(guān)。2. 安全性Java的編程類似C++,但舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針入侵系統(tǒng)。它提供了安全管理器,防止程序的非法訪問。3. 面向?qū)ο? Java吸收了C++面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類中,實(shí)現(xiàn)了程序的簡潔性和便于維護(hù)性,使程序代碼可以只需一次編譯就可反復(fù)利用。4. 分布式Java建立在TCP/IP網(wǎng)絡(luò)平臺(tái)上,提供了用HTTP和FTP協(xié)議傳送和接收信息的庫函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。5. 健壯性Java致力與檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,并自動(dòng)回收內(nèi)存,減少了內(nèi)存出錯(cuò)的可能性。Java取消了C語言的結(jié)構(gòu)、指針、define語句、多重繼承、goto語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動(dòng)回收不用的內(nèi)存空間。 關(guān)于Eclipse[6] Eclipse是一個(gè)開放源代碼的、基于Java的整合型可擴(kuò)展開發(fā)平臺(tái),也是目前最著名的開源項(xiàng)目之一,IBM在最近幾年里也一直在大力支持該項(xiàng)目的發(fā)展,目標(biāo)是將其做成用以替代IVJ的下一代IDE開發(fā)環(huán)境,就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。其未來的目標(biāo)不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴(kuò)展到任何語言的開發(fā),甚至能成為圖片繪制的工具。更難能可貴的是,Eclipse是一個(gè)開放源代碼的項(xiàng)目,任何人都可以下載Eclipse的