基于J2ME技術(shù)的手機(jī)游戲開發(fā).doc_第1頁
基于J2ME技術(shù)的手機(jī)游戲開發(fā).doc_第2頁
基于J2ME技術(shù)的手機(jī)游戲開發(fā).doc_第3頁
基于J2ME技術(shù)的手機(jī)游戲開發(fā).doc_第4頁
基于J2ME技術(shù)的手機(jī)游戲開發(fā).doc_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

南 京 工 程 學(xué) 院畢業(yè)設(shè)計(jì)說明書(論文)專 業(yè): 電子信息科學(xué)與技術(shù) 題 目: 基于J2ME技術(shù)的手機(jī)游戲開發(fā) 瘋狂賽車 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對(duì)本研究提供過幫助和做出過貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導(dǎo)教師簽名: 日期: 使用授權(quán)說明本人完全了解 大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)校可以采用影印、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名: 日 期: 學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán) 大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日指導(dǎo)教師評(píng)閱書指導(dǎo)教師評(píng)價(jià):一、撰寫(設(shè)計(jì))過程1、學(xué)生在論文(設(shè)計(jì))過程中的治學(xué)態(tài)度、工作精神 優(yōu) 良 中 及格 不及格2、學(xué)生掌握專業(yè)知識(shí)、技能的扎實(shí)程度 優(yōu) 良 中 及格 不及格3、學(xué)生綜合運(yùn)用所學(xué)知識(shí)和專業(yè)技能分析和解決問題的能力 優(yōu) 良 中 及格 不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計(jì)方案的合理性 優(yōu) 良 中 及格 不及格5、完成畢業(yè)論文(設(shè)計(jì))期間的出勤情況 優(yōu) 良 中 及格 不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范? 優(yōu) 良 中 及格 不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)? 優(yōu) 良 中 及格 不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義 優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意? 優(yōu) 良 中 及格 不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平 優(yōu) 良 中 及格 不及格建議成績(jī): 優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫“”)指導(dǎo)教師: (簽名) 單位: (蓋章)年 月 日評(píng)閱教師評(píng)閱書評(píng)閱教師評(píng)價(jià):一、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范? 優(yōu) 良 中 及格 不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)? 優(yōu) 良 中 及格 不及格二、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義 優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意? 優(yōu) 良 中 及格 不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平 優(yōu) 良 中 及格 不及格建議成績(jī): 優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫“”)評(píng)閱教師: (簽名) 單位: (蓋章)年 月 日教研室(或答辯小組)及教學(xué)系意見教研室(或答辯小組)評(píng)價(jià):一、答辯過程1、畢業(yè)論文(設(shè)計(jì))的基本要點(diǎn)和見解的敘述情況 優(yōu) 良 中 及格 不及格2、對(duì)答辯問題的反應(yīng)、理解、表達(dá)情況 優(yōu) 良 中 及格 不及格3、學(xué)生答辯過程中的精神狀態(tài) 優(yōu) 良 中 及格 不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范? 優(yōu) 良 中 及格 不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)? 優(yōu) 良 中 及格 不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義 優(yōu) 良 中 及格 不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意? 優(yōu) 良 中 及格 不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平 優(yōu) 良 中 及格 不及格評(píng)定成績(jī): 優(yōu) 良 中 及格 不及格(在所選等級(jí)前的內(nèi)畫“”)教研室主任(或答辯小組組長(zhǎng)): (簽名)年 月 日教學(xué)系意見:系主任: (簽名)年 月 日畢業(yè)設(shè)計(jì)說明書(論文)中文摘要J2ME 虛擬機(jī)在手機(jī)上的普及為手機(jī)游戲的發(fā)展提供了最適合的土壤。隨著MIDP2.0包的發(fā)布,使得手機(jī)游戲開發(fā)者可以更專注于游戲性的增強(qiáng)而不再是繁瑣的動(dòng)畫處理與地圖設(shè)計(jì),而開發(fā)過程變得更加方便迅捷。本文完整地描述了在 Eclipse 平臺(tái)應(yīng)用 J2ME 技術(shù),特別是 MIDP2.0 中新增加的 GameAPI 在手機(jī)上實(shí)現(xiàn)一個(gè)瘋狂賽車游戲。核心在于其游戲引擎的構(gòu)建,其中涉及到的技術(shù)有Midlet框架、賽道產(chǎn)生算法、游戲狀態(tài)機(jī)和精靈等。關(guān)鍵字 J2ME MIDP 2.0 Game API Eclipse 瘋狂賽車畢業(yè)設(shè)計(jì)說明書(論文)外文摘要Title Development of Cell Phone Game Based On J2ME Crazy Racing Car AbstractWidespread use of KVM on the cell phone promotes the development of cell phone game. The release of MIDP 2.0 enables game producer to concentrate more on improvement of game performance than effort in animation processing and map design. And the development progress becomes rapider and more convenient. The thesis introduces the J2ME technology of based on the integrated development environment of Eclipse. It is mainly about the implementation of a gameCrazy Racing Car. The core of the thesis focuses on the game engine construction. The technology concerned includes the MIDlet class, thread, spirits etc.Keywords J2ME, MIDP2.0, Game API, Eclipse, Crazy Racing Car目錄第一章 緒論11.1 移動(dòng)游戲的文化和業(yè)務(wù)11.2 移動(dòng)平臺(tái)簡(jiǎn)介21.3 關(guān)于本課題4第二章 開發(fā)環(huán)境與主要技術(shù)52.1 開發(fā)平臺(tái)52.2 主要技術(shù)62.3 術(shù)語及相關(guān)縮寫解釋14第三章 系統(tǒng)需求分析153.1 運(yùn)行平臺(tái)153.2 界面要求153.3 速度要求153.4 游戲具體需求15第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)184.1 整體框架184.2 游戲的啟動(dòng)管理204.3 游戲的主類的實(shí)現(xiàn)234.4 游戲閃屏的實(shí)現(xiàn)274.5 游戲菜單的實(shí)現(xiàn)304.6 游戲畫布的實(shí)現(xiàn)334.7 賽道產(chǎn)生算法364.8 鍵控處理算法374.9 碰撞檢測(cè)算法394.10 游戲角色的AI策略設(shè)計(jì)414.11 游戲引擎的實(shí)現(xiàn)42第五章 游戲測(cè)試455.1 打包455.2 下載測(cè)試465.2 BUG發(fā)現(xiàn)與測(cè)試總結(jié)48第六章 結(jié)束語496.1 畢業(yè)設(shè)計(jì)的難點(diǎn)與創(chuàng)新496.2 畢業(yè)設(shè)計(jì)的收獲49致 謝51參考文獻(xiàn)52附錄:英文技術(shù)資料翻譯53第一章 緒論本章主要對(duì)發(fā)展中的移動(dòng)游戲進(jìn)行介紹,并對(duì)當(dāng)前流行的移動(dòng)平臺(tái)進(jìn)行簡(jiǎn)單的介紹。1.1 移動(dòng)游戲的文化和業(yè)務(wù)移動(dòng)游戲的發(fā)展遠(yuǎn)遠(yuǎn)落后與相應(yīng)的PC機(jī)上的游戲,主要的困難在于移動(dòng)設(shè)備的處理能力。但是由于掌上電腦和手機(jī)的最新發(fā)展正在快速改變這種現(xiàn)象,它們具備真正的計(jì)算能力但卻小得可以放到隨身口袋中。當(dāng)前的移動(dòng)游戲已經(jīng)形成自己獨(dú)有的文化和業(yè)務(wù)。1.1.1 移動(dòng)游戲的文化短消息已經(jīng)從全球范圍內(nèi)把我們聯(lián)系起來,它的直接性超出了我們的想象;同樣,手機(jī)游戲也搭建了一個(gè)舞臺(tái)對(duì)視頻游戲的全部概念進(jìn)行轉(zhuǎn)換,其效果會(huì)令人震驚。這些話是不是有些過分夸張?我們來考慮一下這樣一種情形:你能夠和來自世界各地的人們一起參加一個(gè)大型的網(wǎng)絡(luò)化的多玩家游戲,你可能是在一次郊游的休息時(shí)來做這件事。這個(gè)情形說明了一個(gè)關(guān)鍵問題,手機(jī)游戲能夠通過一個(gè)移動(dòng)介質(zhì),在任何時(shí)候把任何地點(diǎn)的人們連接起來讓他們一起娛樂?,F(xiàn)在這已經(jīng)不是一個(gè)不切實(shí)際的夢(mèng)想,這種游戲隨著3G時(shí)代的到來已經(jīng)悄然的在我們的身邊出現(xiàn)?,F(xiàn)在全球范圍的多玩家網(wǎng)絡(luò)游戲的思想并非新東西,人們?cè)谒麄兊淖烂骐娔X上干這種事情已經(jīng)很多年了。但那需要網(wǎng)絡(luò)連接到其他的計(jì)算機(jī),而這些計(jì)算機(jī)都很大無法自由移動(dòng)。即使最輕巧的筆記本電腦也需要放置到平緩的表面上,還需要接入某種無線網(wǎng)絡(luò)。手機(jī)則能夠裝入的口袋中,并且默認(rèn)地處于無線連接狀態(tài)。它們使得輕松地加入和退出多玩家網(wǎng)絡(luò)游戲成為可能。通過創(chuàng)建一個(gè)讓游戲玩家來去更加自由的環(huán)境,隨著游戲和相關(guān)技術(shù)的成熟,手機(jī)游戲的公共性方面可能成為最大的吸引力之一。手機(jī)痛信已經(jīng)使得世界變得很小,而手機(jī)游戲則充當(dāng)允許人們一起玩游戲而不關(guān)心其實(shí)際位置,從而使這種情況達(dá)到一種新的水平。手機(jī)游戲不但能夠克服地理位置的障礙,而且能夠突破語言和文化的障礙。人們不需要說相同的語言,也能夠一起玩貪吃蛇。人們會(huì)設(shè)計(jì)出更多更富創(chuàng)意的游戲,從而游戲玩家之間的文化差異變得最小化。1.1.2 移動(dòng)游戲的業(yè)務(wù)縱觀IT產(chǎn)業(yè)的歷史,計(jì)算機(jī)游戲已經(jīng)成為技術(shù)創(chuàng)新背后的動(dòng)力之一。1998年諾基亞公司年發(fā)布了全球第一款手機(jī)游戲“變色龍6110”,內(nèi)置貪食蛇、記憶力和邏輯猜圖三款游戲,受到了全世界的歡迎,其他廠商紛紛跟進(jìn)。計(jì)算機(jī)游戲者渴望更加強(qiáng)大的硬件計(jì)算能力;渴望不受不同的軟件的限制無論是將圖形強(qiáng)制在人工智能(AI)上還是網(wǎng)絡(luò)安全性。游戲開發(fā)者和玩家常常是前沿計(jì)算機(jī)技術(shù)的最早的采用者。由于他們的創(chuàng)新天性,游戲不再是由大型采購(gòu)公司控制的技術(shù)產(chǎn)品游戲領(lǐng)域總是有充足的空間給那些在這方面有天分的單個(gè)創(chuàng)新者。手機(jī)已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。他們是最普遍攜帶的個(gè)人用品中僅次于鑰匙和錢包的東西。傳統(tǒng)的臺(tái)式機(jī)游戲?qū)⒛繕?biāo)鎖定在低級(jí)趣味的人和青少年身上,而手機(jī)游戲則每個(gè)人都可以訪問得到隨時(shí)隨地。盡管每個(gè)手機(jī)游戲的價(jià)格都不貴,但是巨大的使用量(如:每人每星期一個(gè)新游戲)將使得這個(gè)市場(chǎng)商機(jī)無限。但是,對(duì)于開發(fā)者來說,將控制臺(tái)游戲遷移到手機(jī)游戲工程很大。因?yàn)樗麄兯嫦虻膶?duì)象、生活方式和分布式模型都有著極大的區(qū)別。1.2 移動(dòng)平臺(tái)簡(jiǎn)介盡管手機(jī)游戲的格局的確會(huì)風(fēng)云突變,但是占據(jù)主流的移動(dòng)平臺(tái),因而在某種程度上是相當(dāng)穩(wěn)定的。主流的移動(dòng)平臺(tái)主要有: Java 2 Micro Edition (J2ME); Binary Runtime Environment for Wirless (BREW); Symbian; Windows Mobile Smartphone。所有這四種平臺(tái)都得到了當(dāng)前手機(jī)的支持,并且它們都以免費(fèi)文檔和工具的方式提供對(duì)開發(fā)者的支持。接下來將詳細(xì)地討論每個(gè)平臺(tái),介紹它們之間的區(qū)別。1.2.1 J2MEJ2ME 是Sun微系統(tǒng)公司流行Java編程語言的緊湊版本。J2ME包括一組開發(fā)工具和豐富的應(yīng)用程序接口(API)以供開發(fā)手機(jī)應(yīng)用程序,人們稱為MIDlet。J2ME也包括K虛擬機(jī),它負(fù)責(zé)協(xié)助Java字節(jié)碼在每個(gè)手機(jī)上的執(zhí)行,依靠通用的字節(jié)碼而不是本地應(yīng)用程序代碼,J2ME能夠開發(fā)的游戲程序的基本代碼,并且能夠移植到不同的手機(jī)而不需要太大力氣01。事實(shí)上,如果不需要改變屏幕尺寸和圖形顯示能力,在J2ME手機(jī)之間移植一個(gè)游戲所需的工作幾乎是零。下面章節(jié)將詳細(xì)介紹J2ME技術(shù)。1.2.2 BREWJ2ME得到廣泛支持,與此不同的是BREW則是一個(gè)專門以基于高通公司的CDMA(Code Division Multiple Access,碼分多址)技術(shù)的手機(jī)為目標(biāo)的平臺(tái)。這并不是說BREW不能得到相對(duì)較多的手機(jī)的支持。BREW開發(fā)者通常使用C或C+結(jié)合BREW API來開發(fā)BREW設(shè)備所需要的手機(jī)游戲。BREW也支持其他的軟件開發(fā)技術(shù),如XML甚至Java。和J2ME一樣,BREW能夠作為游戲和底層手機(jī)操作系統(tǒng)之間的一個(gè)中介。和J2ME不一樣的是BREW也支持本地代碼,這意味著游戲能夠?qū)iT針對(duì)某一個(gè)手機(jī)的處理器而編譯。本地代碼游戲通常比它們對(duì)應(yīng)的解釋版本要快許多,但是在設(shè)備之間移植它們需要技巧。BREW已經(jīng)流行開來并且在亞洲的部分國(guó)家有數(shù)量驚人的用戶群,包括在日本和韓國(guó)。在美國(guó),Alltel和Version Wireless是支持BREW手機(jī)的領(lǐng)頭無線通信服務(wù)提供商。1.2.3 SymbianSymbian是和BREW采取完全不同的方式的一種手機(jī)操作系統(tǒng)。它是一種開放的操作系統(tǒng),任何設(shè)備制造商都能夠獲得使用許可。Symbian是由Symbian有限公司開發(fā),該公司是由包括Motorola、Nokia、Panasonic/Ericsson在內(nèi)的手機(jī)制造商組成的聯(lián)合公司。Symbian當(dāng)前得到眾多手機(jī)的廣泛支持,主要是因?yàn)樗鄬?duì)容易獲得許可02 。為Symbian設(shè)備開發(fā)手機(jī)游戲會(huì)有很多選擇,因?yàn)镾ymbian支持C+、Java和Visual Basic等編程語言。當(dāng)前的大多數(shù)商業(yè)Symbian游戲都是用C+開發(fā)并作為本地Symbian應(yīng)用程序的,這使得它們和Java開發(fā)的游戲相比更快一些。事實(shí)上,Java已經(jīng)使得Java程序和本地程序之間的性能差距漸漸縮小,但是一個(gè)純粹的本地應(yīng)用程序往往總是比一個(gè)Java程序的效率更高。這一點(diǎn)對(duì)于游戲程序來說特別重要,它們對(duì)額外的處理能力的要求是很刻的。1.2.4 Window Mobile SmartphoneMicrosoft公司的Windows Mobile操作系統(tǒng)多部署在Pocket PC這樣的手持計(jì)算機(jī)和Smartphone這樣的高級(jí)設(shè)備上,微軟公司已經(jīng)從中看到了一些成功的跡象。盡管一些Pocket PC 有相當(dāng)大的屏幕(240320),大都通過手寫筆供用戶輸入。Microsoft公司是在等待時(shí)機(jī)直到手機(jī)技術(shù)能夠跟上它們,因?yàn)樗鼈冏罱l(fā)布的Smartphone,這是Windows Mobile操作系統(tǒng)的手機(jī)版本。這個(gè)操作系統(tǒng)的有趣之處在于,它并非是Pocket PC的縮微版本,它和前者的顯著不同是用戶界面根據(jù)手機(jī)的小屏幕和沒有手寫筆的特點(diǎn)而做出的變化。從手機(jī)游戲的開發(fā)者的角度來看,這就意味著可以使用在編寫Pocket PC游戲時(shí)用到的工具和API。這通常意味著要使用C、C+或C#編程語言并結(jié)合使用Windows Mobile API。Pocket PC游戲開發(fā)到現(xiàn)在已經(jīng)發(fā)展了好幾年,因此,從某些方面講,Smartphone是一個(gè)顯著的飛躍,盡管對(duì)于市場(chǎng)來說它是比較新的力量。在美國(guó),Motorola和Samsung都是Smartphone手機(jī)的制造商,并且它們目前都得到AT&T Wireless和Verizon Wireless的支持。1.3 關(guān)于本課題本課題將在手機(jī)上實(shí)現(xiàn)一個(gè)單機(jī)版的賽車游戲,該游戲模擬PC機(jī)上的賽車游戲速度與激情,實(shí)現(xiàn)玩家與電腦的對(duì)戰(zhàn)。本游戲使用J2ME技術(shù)構(gòu)建了一個(gè)基本的游戲引擎,并利用人工智能技術(shù)實(shí)現(xiàn)了電腦的智能策略。第二章 開發(fā)環(huán)境與主要技術(shù)本章主要對(duì)以Eclipse為核心的J2ME開發(fā)環(huán)境進(jìn)行介紹,并對(duì)該課題開發(fā)過程中需要的J2ME技術(shù)、游戲人工智能技術(shù)和游戲基礎(chǔ)進(jìn)行詳細(xì)介紹。2.1 開發(fā)平臺(tái)本游戲的開發(fā)平臺(tái)為:操作系統(tǒng):Microsoft Windows XP程序語言:Java開 發(fā) 包:Java(TM) 2 Standard Edition (5.1) 模 擬 器:Sun Micro. J2ME Wireless Tool Kit2.5.1Nokia Series 40 5th Edition SDKIDE工具:EclipseSDK3.3.1IDE插件:EclipseME1.7.5關(guān)于本游戲的開發(fā)環(huán)境安裝配置過程比較簡(jiǎn)單,在此不再贅述??傮w來說,JDK提供了虛擬機(jī)來運(yùn)行應(yīng)用程序,而WTK提供了模擬器,Eclipse及其它插件提供了個(gè)開發(fā)測(cè)試程序代碼的IDE集成開發(fā)環(huán)境2.1.1 EclipseEclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。Eclipse相關(guān)的許可證是大多數(shù)基于Common Public License (CPL),CPL是一個(gè)為Open Source Initiative (OSI)所認(rèn)可的許可證。由于Eclipse Foundation的建立,Eclipse的許可證將逐漸趨向于使用Eclipse Public License (EPL),EPL是一個(gè)與CPL相類似的許可證,正在進(jìn)行OSI的認(rèn)證工作03。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C+、COBOL 和 Eiffel 等編程語言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。2.1.2 EclipseMEEclipseME作為Eclipse一個(gè)插件,致力于幫助開發(fā)者開發(fā)J2ME應(yīng)用程序。EclipseME并不為開發(fā)者提供無線設(shè)備模擬器,而將各手機(jī)廠商的實(shí)用模擬器緊密連接到Eclipse開發(fā)環(huán)境中,為開發(fā)者提供一種無縫統(tǒng)一的集成開發(fā)環(huán)境。通過安裝它以使得我們可以在 Eclipse 下開發(fā) J2ME 應(yīng)用。我們可以像建立普通 Java Project 一樣建立一個(gè) J2ME MidletSuite,并調(diào)用 WTK 下的模擬器來運(yùn)行或者調(diào)試它。2.1.3 Wireless ToolkitWTK(Wireless Tool Kit)是Sun公司針對(duì)J2ME推出的用于手機(jī)和Palm等移動(dòng)設(shè)備的開發(fā)包,是除手機(jī)廠商的專用開發(fā)包外唯一的手機(jī)模擬器開發(fā)包。它通用性高,開發(fā)出的應(yīng)用程序可保證能運(yùn)行在大部分設(shè)備上,而不像專用廠商具有一定的不兼容性。雖然它沒有強(qiáng)大的功能和完善的調(diào)試手段,但它提供運(yùn)行模擬器的最基本組件,是其他IDE需集成采用的必備元素。2.1.4 Java Application Manager手機(jī)中負(fù)責(zé)調(diào)配程序運(yùn)行資源的管理后臺(tái)是Java Application Manager。它所使用的傳輸媒體可以是紅外線、網(wǎng)絡(luò)、以及其他可用來傳輸?shù)拿襟w。Java Application Manager 會(huì)從網(wǎng)絡(luò)上下載代表該Application Suite 的JAR 檔,接著在手機(jī)上安裝此MIDlet Suite,然后在手機(jī)開始執(zhí)行該應(yīng)用程序。2.2 主要技術(shù)2.2.1 J2ME技術(shù)概述1999年6月,Sun正式向Java團(tuán)體推出了J2me,并重新劃分了Java 2的體系結(jié)構(gòu),目前主要包括面向桌面應(yīng)用開發(fā)的Java 2平臺(tái)標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、面向企業(yè)應(yīng)用開發(fā)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)、面向消費(fèi)產(chǎn)品和嵌入式設(shè)備應(yīng)用開發(fā)的Java 2 平臺(tái)微型版(Java 2 Platform Micro Edition,J2ME)和Java卡平臺(tái)。Java技術(shù)的體系結(jié)構(gòu)如圖2-1所示。圖2-1 Java技術(shù)的體系結(jié)構(gòu)J2EE、J2SE和J2ME構(gòu)成了Java的完整構(gòu)架。至此,Java已經(jīng)由單純的編程語言發(fā)展到一種平臺(tái)的高度。這三者的結(jié)合,可以將從服務(wù)器到臺(tái)式機(jī)到移動(dòng)設(shè)備的應(yīng)用開發(fā)集中到一種技術(shù)之下。J2ME平臺(tái)由多種配置(Configuration)、簡(jiǎn)表(Profile)和可選包(OptionalPackage)組成。平臺(tái)的實(shí)現(xiàn)者和應(yīng)用程序的開發(fā)者可以從中選擇并組合出一個(gè)完整的Java運(yùn)行環(huán)境來滿足特定范圍內(nèi)的設(shè)備需求。每種組合都應(yīng)該使用這一系列設(shè)備的內(nèi)存、處理器和I/O能力達(dá)到最優(yōu)化。J2ME專家組之所以采取這種靈活的設(shè)計(jì)結(jié)構(gòu)主要是為了滿足市場(chǎng)上不同種類的嵌入式設(shè)備的需求,這些設(shè)備在軟件和硬件特性上都存在巨大的差異,一種規(guī)范很難將它們統(tǒng)一起來。目前,J2ME平臺(tái)主要包括兩個(gè)配置:CLDC和CDC。 CLDC是兩個(gè)配置中較小的一個(gè),為具有間斷性聯(lián)網(wǎng)能力、較慢的處理器和有限內(nèi)存的設(shè)備設(shè)計(jì)的。這些設(shè)備包括移動(dòng)電話、雙工呼叫器和入門級(jí)的PDA,它們通常具有16位或32位的CPU、128KB512KB可用于Java平臺(tái)實(shí)現(xiàn)和相關(guān)應(yīng)用程序的內(nèi)存。 CDC是為處理器能力較強(qiáng)、內(nèi)存空間更大、聯(lián)網(wǎng)能力更出色的設(shè)備設(shè)計(jì)的。這些設(shè)備包括電視機(jī)頂盒、車載娛樂系統(tǒng)和高端PDA等。CDC包括一個(gè)具有完備特性的Java虛擬機(jī),比CLDC更大的J2SE平臺(tái)的子集。CDC的目標(biāo)設(shè)備通常具有32位或者64位的處理器,2MB以上的可用于Java平臺(tái)實(shí)現(xiàn)和相關(guān)應(yīng)用程序的內(nèi)存。移動(dòng)信息設(shè)備簡(jiǎn)表(MIDP)是為移動(dòng)電話和入門級(jí)PDA設(shè)計(jì)的。它為移動(dòng)應(yīng)用程序提供了所需的全部核心功能,包括應(yīng)用程序模型、用戶界面、持久性數(shù)據(jù)儲(chǔ)存、聯(lián)網(wǎng)能力(在CLDC中定義,在MIDP中實(shí)現(xiàn))及應(yīng)用程序管理。目前應(yīng)用非常廣泛的MIDlet就是在MIDP中定義的。CLDC與MIDP組成的完備Java運(yùn)行環(huán)境提升了手持設(shè)備的能力,并且盡可能最小化了設(shè)備內(nèi)存和電源的消耗。2.2.2 J2ME APIMIDP規(guī)范是一套規(guī)則,它描述了在移動(dòng)設(shè)備中進(jìn)行Java編程的特性和局限性,其中主要是一套用于MIDlet編程的標(biāo)準(zhǔn)類和接口。MIDP規(guī)范詳細(xì)描述了可用于MIDlet開發(fā)的API,CLDC也提供了其他的API。MIDP API建立在CLDC API的基礎(chǔ)之上,以提供更加針對(duì)移動(dòng)信息設(shè)備的類和接口??梢哉J(rèn)為CLDC為聯(lián)網(wǎng)設(shè)備提供通用的Java API,而MIDP則進(jìn)一步提供了更加詳細(xì)的API,以填補(bǔ)CLDC API針對(duì)小型無線設(shè)備諸如手機(jī)和尋呼機(jī)所遺留的技術(shù)細(xì)節(jié)。2.2.2.1 CLDC APICLDC API中的大多數(shù)類直接引自標(biāo)準(zhǔn)的J2SE API。這些類和接口實(shí)際上等同于在傳統(tǒng)的Java編程中所熟悉的那些類和接口。這部分CLDC API位于與J2SE中名稱相似的包中,諸如Java.lang和Java.util。除了直接借用于J2SE API的類和接口外,CLDC API還有幾個(gè)特殊接口。這幾個(gè)主要針對(duì)網(wǎng)絡(luò),盡管網(wǎng)絡(luò)是J2SE API的一部分,但對(duì)于手機(jī)這類特殊的網(wǎng)絡(luò)設(shè)備來說,這些接口更是不可缺少的。CLDC定義了一套接口,它們便于實(shí)現(xiàn)通用的網(wǎng)絡(luò),而把實(shí)施這些接口的細(xì)節(jié)留給了MIDP API。因此CLDC API邏輯上分成兩部分: 一系列作為J2SE API的子集的包; 一套通用的網(wǎng)絡(luò)接口。 CLDC與J2SE的不同之處在于它支持網(wǎng)絡(luò)的部分,網(wǎng)絡(luò)接口的描述羅列在一個(gè)叫做GCF01(General Connection Framwork,通用連接框架)的通用網(wǎng)絡(luò)框架中。GCF的目的是定義一個(gè)通用的網(wǎng)絡(luò)體系結(jié)構(gòu),以支持聯(lián)網(wǎng)的I/O,它極其靈活因此具有可擴(kuò)展性。GCF被設(shè)計(jì)成J2SE網(wǎng)絡(luò)類的功能子集,這意味著在GCF中描述的功能也能在J2SE中找到。GCF主要由一套連接接口組成,還有一個(gè)用于建立各種連接的Connetor。Connector類和連接接口均位于包Javax.microeditin.io中。2.2.2.2 MIDP API在設(shè)備配置的基礎(chǔ)上設(shè)備框架會(huì)提供更具體的功能,以便給定的設(shè)備完成重要的任務(wù)。對(duì)MIDP而言,這種設(shè)備就是無線移動(dòng)設(shè)備,如手機(jī)或?qū)ず魴C(jī)。因此MIDP API的任務(wù)是利用CLDC API并在它的基礎(chǔ)上建立必要的類和接口,從而使構(gòu)建一流的MIDlet變?yōu)榭赡?。與CLDC API相似,MIDP API也分為兩部分: 直接從J2SE API繼承來的兩個(gè)類; 一系列包,包括只用于MIDP開發(fā)的類和接口。與CLDC API相似,MIDP API也借用于標(biāo)準(zhǔn)J2SE API。而大部分MIDP API是專為MIDlet編程使用而設(shè)計(jì)的新類和接口。雖然這些類和接口的作用與J2SE API中的一些類和接口相似,但他們是MIDP API獨(dú)有的,是專為解決MIDlet具體的問題而設(shè)計(jì)的。這部分MIDP API包含在名字以Javax.microedition為前綴的幾個(gè)包中。由于手機(jī)自今還沒有硬盤驅(qū)動(dòng)器或?qū)嵸|(zhì)性的文件系統(tǒng),不能依靠文件來存儲(chǔ)持久的MIDlet數(shù)據(jù)。MIDP API描述了一個(gè)全新的方法去存儲(chǔ)和檢索持久的MIDlet數(shù)據(jù),即RMS(Record Management System,記錄管理系統(tǒng))。MIDP RMS提供了一個(gè)簡(jiǎn)單的基于記錄的數(shù)據(jù)庫(kù)API,以持久存儲(chǔ)數(shù)據(jù),如最高分清單和需保存的游戲數(shù)據(jù)等。組成RMS的類和接口位于包javax.microedition.rm中。2.2.3 MIDlet內(nèi)部結(jié)構(gòu)MIDlet是用J2ME APIs開發(fā)的程序,用于移動(dòng)計(jì)算環(huán)境中。MIDlet需要一個(gè)特殊的運(yùn)行環(huán)境。這個(gè)環(huán)境主要包含一個(gè)應(yīng)用程序管理器,它為在移動(dòng)設(shè)備上選擇和運(yùn)行MIDlet提供方便。每個(gè)MIDlet都是從同一個(gè)標(biāo)準(zhǔn)類中派生出來的。這個(gè)標(biāo)準(zhǔn)類是MIDP API的組成部分,位于包javax.microedition.midlet中,叫做MIDlet類。MIDlet類定義了幾個(gè)方法,其中3個(gè)方法對(duì)開發(fā)MIDlet特別重要: startApp()啟動(dòng)MIDlet; pauseApp()暫停MIDlet; destroyApp()銷毀MIDlet;MIDlet對(duì)應(yīng)三個(gè)狀態(tài):Active(激活)、Paused(掛起) 和Destroyed(銷毀),它們決定了MIDlet如何發(fā)揮作用。這些狀態(tài)直接對(duì)應(yīng)上述三個(gè)方法。消減狀態(tài)(Destroyed)停止?fàn)顟B(tài)(Paused)運(yùn)行狀態(tài)(Active)StartApp()DestroyApp()呼叫MIDlet的構(gòu)造函數(shù)DestroyApp()PauseApp()圖2-2 MIDlet的流程MIDlet suite是MIDP應(yīng)用程序的最小單位,JAM負(fù)責(zé)將手機(jī)內(nèi)的MIDlet suite以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDlet suite,一旦選取了某個(gè)MIDlet suite,操作系統(tǒng)就會(huì)激活KVM執(zhí)行里面的MIDlet。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實(shí)際內(nèi)容。而每個(gè)MIDlet都必須繼承javax.microedition.midlet.MIDlet這個(gè)抽象類。在MIDP規(guī)范中定義了MIDlet的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active以及Destroyed,每一個(gè)MIDlet在任何時(shí)刻只可能處于其中的一個(gè)狀態(tài)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖2-2所示:MIDlet有三個(gè)狀態(tài),分別是pause、active和destroyed。在啟動(dòng)一個(gè)MIDlet的時(shí)候,應(yīng)用管理軟件會(huì)首先創(chuàng)建一個(gè)MIDlet實(shí)例并使得他處于pause狀態(tài),當(dāng)startApp()方法被調(diào)用的時(shí)候MIDlet進(jìn)入active狀態(tài),也就是所說的運(yùn)行狀態(tài)。在active狀態(tài)調(diào)用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet進(jìn)入destroyed或者pause狀態(tài)。值得一提的是destroyApp(boolean unconditional)方法,事實(shí)上,當(dāng)destroyApp()方法被調(diào)用的時(shí)候,AMS通知MIDlet進(jìn)入destroyed狀態(tài)。在destroyed狀態(tài)的MIDlet必須釋放了所有的資源,并且保存了數(shù)據(jù)。如果unconditional為false的時(shí)候,MIDlet可以在接到通知后拋出MIDletStateChangeException而保持在當(dāng)前狀態(tài),如果設(shè)置為true的話,則必須立即進(jìn)入destroyed狀態(tài)。為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級(jí)用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是Canvas抽象類進(jìn)行繪圖。從程序開發(fā)的觀點(diǎn)看,Canvas類可與高級(jí)Screen類交互,程序可在需要時(shí)在Canvas中摻入高級(jí)類的組件。Canvas提供了鍵盤事件、指點(diǎn)桿事件(如果設(shè)備支持),并定義了允許將鍵盤按鍵映射為游戲控制鍵的方法。鍵盤事件由鍵代碼指定,但這樣控制游戲會(huì)導(dǎo)致缺乏通用性,并不是每個(gè)設(shè)備的鍵盤布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。2.2.4 基于MIDP的圖像繪制技術(shù)在沒有MIDP2.0前,游戲繪圖一般需要手動(dòng)編程使用雙緩沖。需要在paint()方法內(nèi)將所想要畫的圖形畫在一張預(yù)先準(zhǔn)備好的背景上,等所有繪圖操作都完成后再將背景的數(shù)據(jù)拷貝到實(shí)際的屏幕上。Image類提供了一個(gè)建立背景的靜態(tài)方法createImage(int width, int height),再利用getGraphics()方法取得屬于這個(gè)背景的Graphics對(duì)象,所進(jìn)行的繪圖操作都會(huì)作用在背景上,等到全部的繪圖操作完成后,再調(diào)用drawImage()方法將背景的數(shù)據(jù)復(fù)制到實(shí)際顯示的屏幕上。這樣的技術(shù)在繪制動(dòng)畫時(shí)特別有用。繪制動(dòng)畫時(shí)經(jīng)常需要不斷地更新畫面,而更新畫面的操作就是先將屏幕以fillRect()的方式清除,再將下一張圖片畫在屏幕上,然而反復(fù)的清除及重繪會(huì)造成屏幕的閃爍現(xiàn)象(flicker)。因此使用雙重緩沖的好處就是在后臺(tái)進(jìn)行這個(gè)清除及重繪的操作,再將完成的繪圖拷貝到屏幕上。由于用戶看不到清除的操作,因此就不會(huì)出現(xiàn)閃爍的現(xiàn)象了。不過在某些MIDP的實(shí)現(xiàn)上已經(jīng)加上了雙重緩沖的支持,因此在處理前應(yīng)先利用Canvas類的isDoubleBuffer()方法來判斷。在MIDP2.0版本發(fā)布后,游戲移植性問題初步得到了解決。MIDP2.0新加入了GameCanvas、Sprite、Layer、LayerManager、TiledLayer五個(gè)與游戲開發(fā)相關(guān)的類,其中 Layer類一般不會(huì)直接用到。GameCanvas類繼承自Canvas,所以具有Canvas所具有的功能,還額外增加了一些便于游戲設(shè)計(jì)的功能。比如: GameCanvas類直接提供了getKeyStates(),使程序員可以在同一個(gè)線程自己偵測(cè)按鍵的狀態(tài)。GameCanvas類提供了flushGraphics()的功能,實(shí)現(xiàn)了雙緩沖技術(shù)。Sprite類是繼承自Layer的用于存儲(chǔ)多幀的基本可視元素。不同的frame可交相顯示,構(gòu)成動(dòng)態(tài)的效果。圖片可翻轉(zhuǎn)和顛倒,由一個(gè)游戲圖片就可以方便的得到所有方向的顯示狀態(tài),相比原先只能使用Canvas繪圖,需要將所有方向的游戲圖像都繪制在png圖像中簡(jiǎn)化了許多。Sprite也可以從整合的圖像中讀圖,讀圖時(shí)將把大圖分解為若干等寬等高的小圖。每個(gè)小圖按照其排列順序有相應(yīng)的序號(hào),在程序中調(diào)用其序號(hào),就可以繪制出相應(yīng)的圖片。2.2.5 游戲開發(fā)基礎(chǔ)當(dāng)前的主流游戲分類方式,主要是從玩家角度來分類的02,手機(jī)游戲也不例外,主要包括: RPG(角色扮演)類,如Nokia的同名RPG(角色扮演)游戲Nokia,大宇的仙劍奇?zhèn)b傳Mobile; FTG(格斗)類,如Siemens的BattleMail,日本的街頭霸王移動(dòng)電話版,Sony的摔跤游戲斗魂列傳,拳皇(KOF); 電影改版類,如Intel和高通公司投資的Jamdat的角斗士; SPG(運(yùn)動(dòng))類,如蘇格蘭公司DigitalBridges推出的幻想足球世界作品; 棋牌類,如跳棋、斗地主、接龍、五子棋和麻將等游戲; 動(dòng)作類,如月球反擊戰(zhàn)、空軍大戰(zhàn)、賽車坦克大戰(zhàn)和超級(jí)瑪麗等游戲; 益智類,如挖地雷、推箱子和數(shù)字吃豆等游戲; 冒險(xiǎn)類,如Nokia的speed; 模擬類,如大宇的大富翁系列; 戰(zhàn)略模擬,由于當(dāng)前手機(jī)的限制,此類游戲還沒有較好地實(shí)現(xiàn),但是PC機(jī)上的帝國(guó)世界,星際爭(zhēng)霸都是此類游戲的代表; FPS游戲(第一人稱視角游戲),這個(gè)游戲最具代表性的是CS。所有成功游戲的主要要素就是游戲的構(gòu)思、可玩性、圖形的設(shè)計(jì)、聲音的設(shè)計(jì)和性能。在設(shè)計(jì)開發(fā)游戲時(shí)把握住這些要素,然后加入新的個(gè)性,也能夠開發(fā)出一款成功的游戲。2.2.6游戲AI基礎(chǔ)開發(fā)游戲的時(shí)候所面臨的最大的挑戰(zhàn)就是:要給玩家制造挑戰(zhàn)04。在有些游戲中。只要使敵人不斷涌向玩家就可以形成挑戰(zhàn),而在其他一些游戲中,卻需要開發(fā)出的代碼使得游戲也像人類玩家一樣思考。讓游戲思考也就是我們要討論的人工智能(Artificial Intelligence,AI)策略。人工智能可以定義為一種在計(jì)算機(jī)中模擬人類思維過程的技術(shù)。AI是一非常廣泛的研究領(lǐng)域,而和游戲相關(guān)的AI只是整個(gè)AI知識(shí)的一個(gè)相對(duì)較小的子集。近年來的游戲AI策略研究集中在兩個(gè)領(lǐng)域:一個(gè)特別有意義的領(lǐng)域就是模糊邏輯,它嘗試做出“最佳猜測(cè)”決策而不是傳統(tǒng)AI的具體決策;另一個(gè)有趣的AI研究就是基因算法,它所嘗試建模的進(jìn)化論思想和科學(xué)家所認(rèn)為的基因自然進(jìn)化理論相似04。使用基因算法的游戲理論上都會(huì)有一個(gè)計(jì)算機(jī)對(duì)手在游戲過程中不斷的學(xué)習(xí),為人類玩家提供好似源源不斷的挑戰(zhàn)。2.2.6.1 游戲AI的類型根據(jù)如何滿足特定游戲的應(yīng)用需求,和游戲相關(guān)的AI劃分為三種基本的類型: 漫游AI確定一個(gè)游戲?qū)ο笕绾卧谝粋€(gè)虛擬的游戲世界中漫游; 行為AI確定跟蹤或追逐在一個(gè)游戲?qū)ο蠖鄠€(gè)游戲?qū)ο蠛竺娴牧硪粋€(gè)游戲?qū)ο笫嵌嗝淳哂泄粜裕?策略AI在一個(gè)策略游戲中,從一組固定的實(shí)現(xiàn)定義的漫游規(guī)則中確定最佳的移動(dòng)方案;由于本游戲的設(shè)計(jì)只涉及到前兩種,所以這里我們就只討論前兩種AI。2.2.6.2 漫游AI漫游AI指的是對(duì)游戲?qū)ο蠼5腁I,也就是,游戲?qū)ο笞龀鰶Q定,確定它們?nèi)绾卧谝粋€(gè)虛擬世界中漫游。基本上,對(duì)于計(jì)算機(jī)控制的對(duì)象,不論是它必須做出決定改變當(dāng)前路徑,還是要在游戲中實(shí)現(xiàn)需要的結(jié)果,或者只是簡(jiǎn)單地遵守某種特定的移動(dòng)方式,都要用到漫游AI。實(shí)現(xiàn)漫游AI通常都比較簡(jiǎn)單,一般包括根據(jù)一個(gè)對(duì)象的位置或速度,改變另一個(gè)對(duì)象的速度或位置。對(duì)象的漫游移動(dòng)也可以由隨機(jī)的或預(yù)定以的方式的影響。有三種類型的漫游AI:追逐、躲避和模式。追逐是這樣一種漫游AI:一個(gè)游戲?qū)ο蟾櫥蚴亲分鹆硗庖粋€(gè)對(duì)象或多個(gè)游戲?qū)ο蟆R话闶歉鶕?jù)被追逐對(duì)象的速度或位置來追逐,來改變追逐對(duì)象的速度或位置,在其中必須能夠利用好隨機(jī)方法使追逐變得平緩。逃避和追逐在邏輯上是相對(duì)的,它是另一種方式的漫游AI,其中一個(gè)游戲?qū)ο髮iT試圖擺脫另一個(gè)對(duì)象,它們的實(shí)現(xiàn)方式是相似的。模式移動(dòng)指的是對(duì)游戲?qū)ο笫褂靡唤M預(yù)定義的移動(dòng)的一種漫游AI類型。模式包括圓圈、八字形、Z字形或者更加復(fù)雜的移動(dòng)。模式通常存儲(chǔ)為一個(gè)速度或位置偏移量的數(shù)組,當(dāng)模式移動(dòng)需要它的時(shí)候會(huì)將其應(yīng)用到一個(gè)對(duì)象上。2.2.6.3 行為AI盡管漫游AI策略本身確實(shí)很有用,實(shí)際的游戲場(chǎng)景中常常需要混合使用這三種AI。行為AI是另外一種基本的游戲AI類型,它常常用一種混合的漫游AI算法來賦予游戲?qū)ο筇囟ǖ男袨?。使用行為AI的另一個(gè)合理的原因就是要改變游戲的難度。例如,可以借助追逐算法而不是隨機(jī)移動(dòng)或模式移動(dòng)來使得攻擊者在游戲中的較高級(jí)別中更具攻擊性。要實(shí)現(xiàn)行為AI,還需要建立一組攻擊者或游戲角色的行為。賦予游戲?qū)ο笮袨椴⒉皇呛茈y。通常需要為系統(tǒng)總的每一種行為建立一個(gè)級(jí)別,然后將它們應(yīng)用到每一個(gè)對(duì)象。例如在游戲具有攻擊性的角色一般具有一下的幾種行為:追逐、躲避、模式移動(dòng)和隨機(jī)移動(dòng)。行為AI的效果非常好,并且由于它實(shí)現(xiàn)簡(jiǎn)單,利用它往往收獲頗豐。典型的實(shí)現(xiàn)就是使用一個(gè)switch語句或者嵌套的ifelse語句來選擇一個(gè)特定的行為。行為的創(chuàng)建和分配具有廣闊的創(chuàng)新性。創(chuàng)建游戲?qū)ο笮袨榈南敕ǖ淖詈玫膩碓词莿?dòng)物世界中常見的初級(jí)反應(yīng)。2.3 術(shù)語及相關(guān)縮寫解釋 IDE:全稱Integrated Development Environment,集成開發(fā)環(huán)境; WTK:全稱Wireless Toolkit,是Sun公司發(fā)布的J2ME應(yīng)用開發(fā)套件; JAR:全稱Java Archive File,是Java的一種文檔格式。本文中用以代指J2ME程序經(jīng)編譯后的執(zhí)行文件,可以傳至手機(jī)中直接運(yùn)行; NPC:全稱Non Player Character,即“非玩家控制角色; FPS:全稱Frames Per Second,即每秒刷新幀數(shù); AI:全稱Artificial Intelligence,即人工智能。第三章 系統(tǒng)需求分析本章主要對(duì)系統(tǒng)的運(yùn)行平臺(tái)、界面、速度和游戲的各種規(guī)則進(jìn)行需求分析。3.1 運(yùn)行平臺(tái)本游戲?qū)儆谝豢顔纹聊粍?dòng)作類游戲,目標(biāo)運(yùn)行平臺(tái)為所有支持CLDC1.1、MIDP2.0,屏幕分辨率不小于320240 的手機(jī)設(shè)備,并要求在各型號(hào)手機(jī)上均有良好的兼容性。3.2 界面要求參照PC機(jī)上的賽車游戲,要求精致、美觀,游戲角色形象可愛。所有界面均須使用低級(jí) UI 繪制。3.3 速度要求要求在滿足平臺(tái)需求的各手機(jī)上運(yùn)行時(shí)畫面流暢,聲音播放正常,操作無明顯延遲感。3.4 游戲具體需求3.4.1 主要界面要求游戲具有“閃屏”(Splash)、“菜單”、“游戲主界面”、“幫助”和“關(guān)于游戲”等界面。3.4.2 閃屏界面要求顯示游戲菜單前,必須先自動(dòng)、連續(xù)顯示兩個(gè)閃。第一個(gè)閃屏用于顯示南京工程學(xué)院徽標(biāo)、南京工程學(xué)院校名和畢業(yè)設(shè)計(jì)等信息;第二個(gè)閃屏用于顯示所設(shè)計(jì)的程序的圖標(biāo)和程序名稱及版本等。兩個(gè)閃屏的顯示由時(shí)間控制,自動(dòng)消失,也可以接受用戶的按鍵事件,用戶在任何一個(gè)閃屏按任意鍵,當(dāng)前閃屏自動(dòng)消失。閃屏圖案排列要考慮顯示全部圖案,且游戲菜單無論在大、小屏幕都要垂直、水平居中。3.4.3 游戲菜單游戲者可通過菜單界面可選擇開始游戲、繼續(xù)游戲(但暫停后恢復(fù)時(shí)自動(dòng)添加)、游戲選項(xiàng)、游戲等級(jí)、幫助、關(guān)于和退出游戲。3.4.4 游戲等級(jí)菜單游戲者可通過主菜單進(jìn)入游戲等級(jí)選擇界面查看游戲的各個(gè)等級(jí),該界面必須實(shí)現(xiàn)上下鍵滾動(dòng)屏幕或翻頁功能和按鈕事件的響應(yīng),以實(shí)現(xiàn)玩家選擇的相應(yīng)的等級(jí)。3.4.5 幫助與關(guān)于游戲界面游戲者可通過主菜單進(jìn)入幫助或關(guān)于界面查看游戲規(guī)則與基本操作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論