




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 畢業(yè)設計說明書吃豆豆手機游戲的設計與開發(fā)學生姓名: 學號: 通信技術學 院: 專 業(yè): 指導教師: 2010年 6 月 吃豆豆手機游戲的設計與開發(fā)摘 要 隨著移動電話的普及率越來越高,手機已經成為人們生活中的必需品。同時,隨著科技的發(fā)展,移動電話的功能也越來越強,手機娛樂已經成為一項充滿發(fā)展前景和商機的產業(yè)。雖然目前手機的處理能力與個人計算機的標準處理能力相比很有限,但是足夠運行一個相對小型的游戲。本文先從java手機游戲的背景出發(fā),介紹了java手機游戲的發(fā)展現狀,然后從整體上介紹本吃豆人游戲開發(fā)的模型、結構分析和具體功能實現,游戲的接口和運作方式。通過對手機游戲開發(fā),midp
2、2.0,以及jsr-184的研究,采用立即模式,運用深度優(yōu)先遍歷算法來隨機生成游戲地圖,并盡力模擬手機游戲的普遍性形式,實現一個操作簡單,并有一定可玩性的完整3d手機迷宮游戲。 關鍵詞:j2me;midp 2.0;pac-man;立即模式(immediate mode);深度優(yōu)先遍歷。eat doug cellular phone game design and development.abstract with mobile phone penetration rate increasing, mobile phones have become a necessity in peo
3、ple'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 the industry. although at present the handling capacity of mobile phones and personal
4、 computer processing power than the standard is very limited, but enough of a relatively small operation of the game.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, struc
5、tural analysis and specific functions 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 to simulate the universal form of mobile game
6、s, to realize a simple operation, and funny pac-man maze game on mobile phone. key words:j2me; midp 2.0; pac-man; immediate mode; the depth-first traversal algorithms目 錄1 緒論51.1研究背景51.2研究內容62 手機游戲簡介62.1 手機游戲的發(fā)展62.2 手機游戲的特點72.2.1 手機設備的優(yōu)點72.2.2 手機設備的缺點72.3 手機游戲的開發(fā)82.3.1與傳統游戲開發(fā)的區(qū)別82.3.2 揚長避短的開發(fā)策略9
7、3 java和j2me概述123.1 java概述123.1.1 java的歷史123.1.2 java語言特點133.2 j2me及其體系結構概述143.2.1 j2me簡介143.2.2 j2me 體系結構154 開發(fā)環(huán)境簡介164.1 wireless tool kit 簡介164.2 eclipse 開發(fā)環(huán)境的建立164.2.1 什么是eclipse?164.2.2 eclipse的主要組成174.2.3 什么是eclipseme?174.3 midp 2.0簡介185 游戲的設計195.1 任務介紹195.1.1 目標195.1.2 項目背景195.1.3 運行環(huán)境205.2 功能需
8、求205.2.1 游戲菜單設置205.2.2 游戲界面的需求205.2.3 游戲簡介205.2.4 手機鍵盤處理事件需求205.3 游戲的具體設計205.3.1 游戲導讀205.3.2 游戲目的215.3.3 設計思路215.3.4 游戲創(chuàng)意216 詳細設計216.1程序系統結構216.2 程序結構、思想226.2.1 本程序需要解決的主要技術問題226.2.2 程序流程226.3 相關技術276.3.1 內存的優(yōu)化276.3.2 內存檢測器276.3.3 關于混淆器277 測試287.1 測試的過程287.1.1 測試環(huán)境287.1.2 系統測試287.2 發(fā)現的bug及解決情況298 總結
9、298.1 本程序的總結和展望298.2 感想29參 考 文 獻31致 謝331 緒論1.1研究背景java自從20世紀90年代早期誕生以來,以其強大的功能迅速為廣大程序員們所接受。從2001年開始,日本的國內的移動電話開始搭載java。使用本來就是一種程序語言的java之后,就可以在移動電話上完成以往靜態(tài)的html內容所無法達成的計算處理、數據存儲、與服務器的通信等等。如果能利用java上其他豐富功能,那么就可以實現更多的功能。游戲作為人們日常生活的一個重要的娛樂項目,也帶動了巨大的游戲相關產業(yè)市場的發(fā)展。游戲平臺從游戲機、電視游戲,到pc游戲,到手機游戲,中間經歷了很多的技術的變革。隨著新
10、技術的發(fā)展和人們生活水平的提高,手機開始逐漸普及,手機以其小巧便捷,方便的特性成為人們的必備通訊工具。而基于手機平臺的手機游戲也就擁有了巨大的市場空間,隨著3g的開通和應用,手機游戲必將迎來新的一輪游戲熱潮!隨著手機游戲的發(fā)展,國內外各大開發(fā)商紛紛運用java進行手機游戲開發(fā)。j2me作為一種基于java的便攜設備開發(fā)平臺,在各大手機開發(fā)公司得到了廣泛應用。1.2研究內容本課題擬研究基于j2me的手機游戲開發(fā)技術以及其特點,具體研究內容如1、手機游戲開發(fā)以及j2me的基本理論和j2me類庫的使用;2、j2me體系結構的研究;3、midp移動信息設備簡表的研究;
11、; (1)、midp的目標硬件環(huán)境; (2)、midp應用程序; (3)、cldc和midp庫中的類。4、j2me api的研究; (1)midlet應用程序的研究; (2)midlet的類庫研究; (3)各事件發(fā)生器的應用。5、開發(fā)工具的應用和開發(fā)環(huán)境的設置。 其中midp移動信息設備簡表的研究和j2me api的研究為重點,本課題將通過一個具體的手機游戲的開發(fā)來研究2 手機游戲簡介21 手機游戲的發(fā)展 在地鐵、機場和車站,我們可以看見越來越多的人低頭玩著手機游戲伴隨不斷變化的表情或皺眉或微笑。當我們購買新的手機,也會發(fā)
12、現越來越多嵌入手機系統的娛樂功能,特別是各種精彩的游戲。手機已經成為許多人生活的一部分,人們也漸漸習慣將手機作為新的娛樂工具。越來越多的人陶醉于手機游戲帶來的新鮮體驗。由于手機的便攜性,使得手機游戲隨著手機的普及在全世界風行起來。 手機游戲的興起與傳統游戲的發(fā)展演變之路不同。這種差別已不僅僅表現為游戲終端設備的差異,而是體現在游戲傳輸載體以及游戲參與方式的變革。技術融合帶來游戲跨平臺的發(fā)展,通過網絡,個人電腦、大型游戲機、家用游戲機、交互電視、手持終端設備都可以進行互動交流。不同的設備可以通過網絡運行相同的游戲,游戲按照終端設備分類的界線越來越模糊。這樣的變革源于技術進步,也創(chuàng)造出無限商機。2
13、2 手機游戲的特點2.2.1 手機設備的優(yōu)點1. 龐大的潛在用戶群 全球在使用的移動電話已經超過10億部,而且這個數字每天都在不斷增加。在除美國之外的各個發(fā)達國家,手機用戶都比計算機用戶多。手機游戲潛在的市場比其他任何平臺,比如playstation和gameboy都要大。2. 便攜性 在控制臺游戲時代,gameboy熱銷的一個原因就是便攜性人們可以隨時隨地沉浸在自己喜歡的游戲中。和游戲控制臺或者pc相比,手機雖然可能不是一個理想的游戲設備,但畢竟人們總是隨時隨身攜帶,這樣手機游戲很可能成為人們消遣時間的首選。3. 支持網絡因為手機是網絡設備,在一定限制因素下可以實現多人在線游戲。2.2.2
14、手機設備的缺點1. 屏幕小 雖然手機屏幕的分辨率持續(xù)提高,并且彩屏已經成為標準,但是屏幕尺寸依然很小,畢竟我們沒有人樂意拿著磚塊一樣大的手機。另外,不同手機的屏幕大小有差異,而用戶總是希望使用自己特定的手機上所有可用的屏幕空間,這樣開發(fā)者不可避免需要為不同的手機移植優(yōu)化同一款游戲。2. 有限的顏色和聲音支持 雖然市場上彩屏手機所占份額越來越大,但手機上顯示的顏色在質量和數量上與pc機上還是有很大的距離。至于音效,主要的決定因素是頻響、帶寬、合弦和功率,手機現有設備的播放效果還很不理想。3. 應用程序大小限制 雖然在一些新款智能手機上可以運行幾兆字節(jié)的應用程序,但大部分手機只有很小的內存空間供應
15、用程序使用。此外,對可運行的應用程序的大小還有來自運營商的其他限制。4. 等待時間長 等待時間(機器發(fā)出請求和接到響應之間所花費的時間)在計算機上是以微秒計算;在有線因特網上是以毫秒計算;而在無線網絡上則要以秒計算。等待時間長是網絡游戲中一直存在的一個問題。無線網絡等待時間過長,就導致無法有效地開發(fā)多人快速動作游戲;然而基于回合制的多人游戲卻是可行的。 還有一種特殊情況,使用藍牙技術或其他無線局域網技術的手機可以和附近的藍牙設備在因特網等待時間下(一般200ms400ms)通信。這樣,使用具備該功能的智能手機,用戶就可以和附近的移動用戶一起玩多人快速動作游戲了。5. 可中斷性是關鍵 當需要接聽
16、或撥打電話時,我們通常會中斷進行中的游戲,游戲程序必須能夠暫停和繼續(xù)。這樣的暫停既不能造成游戲問題(例如,游戲者在打電話的時候老怪仍然在移動,打死玩家扮演的角色,導致玩家輸掉游戲),也不可以導致內存溢出。這些都是開發(fā)者需要在設計時給予充分考慮的問題。2.3 手機游戲的開發(fā) 2.3.1與傳統游戲開發(fā)的區(qū)別1. 團隊規(guī)模開發(fā)傳統的pc機游戲或者控制臺游戲,一般需要12到30人的開發(fā)團隊。因為大部分移動游戲規(guī)模比控制臺游戲小,所以一般情況下只需要3到5人的開發(fā)團隊,有的時候甚至設計者和編程者可以是同一個人。2. 開發(fā)預算按照美國游戲產業(yè)的一般開發(fā)成本,傳統游戲的預算往往在一百萬美元到五百萬美元之間,
17、而大部分移動游戲的預算則通常低于一百萬美元,在中國,這個數字將更低。由于移動電話有限的顯示能力和對應用程序大小的限制,使得移動游戲的開發(fā)不必如傳統游戲那樣投入大量的人力財力。從某種意義上來說,這也算是一個優(yōu)勢。3. 開發(fā)周期開發(fā)傳統游戲一般需要兩到三年,而大部分移動游戲可以在幾個月之內開發(fā)完畢。換句話說,開發(fā)商只要有一個小型的開發(fā)團隊和一個較小的預算,就可以催生出一款專業(yè)品質的移動游戲。4. 網絡設備移動電話的特性決定它是一種網絡設備,雖然處理能力甚至比不上老式計算機,但是它的網絡性能卻更加出眾,并且可支持多人游戲。5. 開放標準控制臺游戲的開發(fā)商需要取得控制臺游戲廠商的授權和支持,需要支付給
18、他們“平臺使用費”。而在無線應用程序世界(如同在pc游戲開發(fā)中一樣),開發(fā)者則可以免費地開發(fā)任何款式的游戲。另外,這些移動游戲開發(fā)平臺標準是開放的,可供開發(fā)者免費取得。6. 推廣方式對于傳統的游戲,玩家通常是在軟件市場上購買;而移動游戲的推廣,則主要是由用戶從移動門戶網站下載并安裝。用戶可以通過無線網絡直接下載游戲;或者下載應用程序到計算機中,然后通過數據線傳送到手機。因此,移動游戲的銷售渠道不同于傳統游戲,用戶一般通過移動運營商的游戲菜單、手機廠商預裝在手機中的游戲菜單或者無線應用程序門戶網站上找到手機游戲。2.3.2 揚長避短的開發(fā)策略前面討論了手機游戲的特點,從中可以看到,在開發(fā)手機游戲
19、的時候需要充分發(fā)揮它的優(yōu)點,同時盡量解決或回避它自身的局限性。下面列出一些供開發(fā)者考慮的因素:避免過多的等待時間。這對單人游戲來說很容易實現,但在多人游戲中開發(fā)者就需要解決等待時間長的問題。使用網絡。網絡不一定對于每款手機游戲都是必需的,但是玩家往往喜歡有與人競爭的感覺,即使只有一個排行榜,也會使游戲更富有吸引力。經驗表明,帶有交互性、協作性的游戲方式會讓游戲更加受歡迎。短的游戲時間。手機用戶遲早要打電話或者接電話,而且沒有人愿意把所有的電量都消耗在游戲上。通常每一回合游戲應該保持在五分鐘之內,當然這不是說一個完整的游戲必須在五分鐘內結束,而是允許用戶中斷、保存和繼續(xù)游戲。玩家有自己的時間表,
20、所以作為開發(fā)者應尊重用戶的選擇權,方便用戶在任何想玩的時候玩,想中斷就中斷,而不能要求用戶遵循既定的時間表。盡可能地讓游戲保持小型。我們發(fā)現,很多游戲玩家仍然熱衷于20世紀80年代優(yōu)秀的小游戲。在某些方面,技術的限制迫使我們把更多的注意力放到小型的游戲中去。做好支持多種手機的準備。作為開發(fā)者,我們至少需要使游戲支持不同的屏幕尺寸,有時還要利用特定手機的性能。由于不同的手機具有不同的硬件特性,通常同一款游戲需要開發(fā)不同的版本。為國際化做好準備。移動電話在世界范圍內的應用越來越廣泛,產品要進入新的市場往往需要在語言等方面本地化,這在開發(fā)的時候需要做全盤考慮。上面討論了開發(fā)者應注意的若干因素。以第一
21、個因素為例,如何處理等待時間長是眾多移動游戲開發(fā)者面對的難題。那么等待時間長究竟對移動游戲有怎樣的影響呢?下面專門進行討論。單人游戲不需要使用網絡,除非是把積分發(fā)送到排行榜或允許游戲者瀏覽排行榜。這種網絡通信對于游戲影響不大,幾秒鐘的延遲不會引起用戶的反感,因此實際中的大多數單人游戲不存在等待時間的困擾。在“多玩家”單人游戲中,玩家感覺他們是在玩一個多人游戲。但事實上每個人只是面對相同的游戲,僅僅在整個游戲結束或者回合結束時比較分數。當一個玩家加入游戲時,他告訴其他人自己的id,然后開始玩單人游戲。服務器或者給每個游戲者發(fā)送一個包含相同消息的游戲狀態(tài)文件,或者發(fā)送一個來自構造啟動游戲狀態(tài)的客戶
22、軟件的代碼。當一個玩家結束游戲后,游戲者的客戶端程序將他的得分提交到服務器。當所有的游戲者都完成游戲后(或者超過某個時間以后),服務器告訴每個游戲者誰取得了最高分,以及每個游戲者取得的分數。這種風格的游戲在因特網上相當成功,比如aol(美國在線)最受歡迎的游戲slingo就是一個很好的例子。因為只有在服務器開始或者結束游戲的時候才需要交換消息,所以等待時間只有在這些時候才成為需要考慮的問題?!岸嗤婕摇倍嗳擞螒蚩梢苑譃閮深悾阂活愂腔诨睾系挠螒?,另一類是“即時動作”游戲。對基于回合的游戲,游戲者進入他們的回合,并在接收結果之前需要等待一段時間。這種情況下,幾秒鐘的延遲是可以容忍的。常見的有兩種基
23、于回合的游戲:第一種是輪流游戲在游戲中每個游戲者按次序進入回合,如象棋、紅心大戰(zhàn)這樣的經典游戲。這種游戲的缺點是游戲者在重新進入回合之前無事可做。因此,通常需要限制這種游戲的游戲者數目,這樣延遲就不會長得讓人難以忍受。24個游戲者是比較理想的情況。第二種是同時動作游戲。在一個同時動作游戲中,每個游戲者獨立計劃自己的行動。當一個游戲者就緒時,他發(fā)送指令到服務器。當服務器從所有的游戲者那里都接到指令后,分解回合,再把結果發(fā)送到每一個游戲者那里?!凹磿r動作”游戲往往可能會持續(xù)很長時間(幾天、幾個星期、幾個月甚至到永遠)。游戲者可以在任何時候進入游戲,執(zhí)行游戲中的動作。在一些游戲中,他們只能與其他同時
24、進入游戲的用戶交互;在另一些游戲中,他們也許能與任何其他游戲者交互,即使這些游戲者已經離線。由于手機硬件設備的諸多限制和性能差異,在游戲的開發(fā)和制作過程中無法天馬行空般地進行創(chuàng)作,不得不綜合考慮多方因素的平衡。下面列出的是一些關鍵的要素,這些要素都直接影響游戲運行的最終效果。1. 分辨率 手機的屏幕大小各有不同,從80×30像素到320×240像素,就好比在pc發(fā)展過程中的cga、ega乃至vga。分辨率的高低直接影響游戲中造型的尺寸及表現力,這點每個設計人員都一定有所體會。另外,由于手機型號及操作系統的多樣性,導致了同一款游戲不能不加改動地在不同的手機上運行。因此,美工設
25、計人員要在設計之初考慮屏幕的自適應問題,比如在128×128分辨率下與200×200的分辨率下,如何做到不更換圖片而顯示出同樣的畫面效果。2. 色彩數量目前手機所能提供的色彩數量也是限制美工人員發(fā)揮的一個重要瓶頸。3. 亮度由于獨特的發(fā)光原理,液晶屏幕無法達到傳統顯示器的亮度,這樣就導致很多色彩豐富的圖案在強光下不能顯示出原有的效果,當手機在戶外使用時表現得尤其明顯。因此設計人員在設計游戲圖片時一定要考慮到這一點,不能將色彩對比度設置得過于接近。另外圖片設計一定要簡潔明快,避免過小的圖片。4. 顯示速度在常使用的手機中,很多由于芯片運算速度太低,導致動畫不流暢,有時甚至低于
26、10幀/秒,這對于動畫游戲而言是致命的。而且液晶屏幕本身也有顯示速度問題,比如有的手機有影像“拖尾”的現象,這種情況在實際游戲中很容易造成玩家的視覺疲勞。我們通常采取局部刷幀或者避免全屏幕動畫的方法來盡量達到預期效果。5. 電力 由于手機配備的是液晶屏幕,高亮度的像素顯示會比一般像素顯示耗電量增大,例如白色背景就要比黑色背景消耗更多的電池能量。因此對于手機游戲而言,要盡可能節(jié)省玩家的電池,這也是人性化設計的體現。3 java和j2me概述3.1 java概述3.1.1 java的歷史java,是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,由sun公司的詹姆斯·高斯林(jame
27、s gosling)等人于1990年代初開發(fā)。它最初被命名為oak,目標設定在家用電器等小型系統的編程語言,來解決諸如電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊問題。由于這些智能化家電的市場需求沒有預期的高,sun放棄了該項計劃。就在oak幾近失敗之時,隨著互聯網的發(fā)展,sun看到了oak在計算機網絡上的廣闊應用前景,于是改造了oak,在1995年5月以“java”的名稱正式發(fā)布了。java伴隨著互聯網的迅猛發(fā)展而發(fā)展,逐漸成為重要的網絡編程語言。java編程語言的風格十分接近c+語言。繼承了c+ 語言面向對象技術的核心,java舍棄了c+語言中容易引起錯誤的指針(以引用取代)、運算符
28、重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據的內存空間。在java se 1.5版本中java又引入了泛型編程(generic programming)、類型安全的枚舉、不定長參數和自動裝拆箱等語言特性。java不同於一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯成字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,這同時也在一定程度上降低了java程序的運行效率。但在j2se1.4.2發(fā)布后,java的執(zhí)行速度有了
29、大幅提升。與傳統程序不同sun公司在推出java之際就將其作為一種開放的技術。全球數以萬計的java開發(fā)公司被要求所設計的java軟件必須相互兼容?!癹ava語言靠群體的力量而非公司的力量”是sun公司的口號之一,并獲得了廣大軟件開發(fā)商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。3.1.2 java語言特點1.平臺無關性 java引進虛擬機原理,并運行于虛擬機,實現不同平臺之間的java接口,java的數據類型和機器無關。2.安全性java的編程類似c+,但舍棄了c+的指針對存儲器地址的直接操作,程序運行時,內存由操作系統分配,這樣可以避免病毒通過指針侵入系統。他提供了安全管理
30、器,防止程序的非法訪問。3.面向對象java吸收了c+面向對象的概念,將數據封裝于類中,實現了程序的簡潔性和便于維護性,使程序代碼可以只需一次編譯就可反復利用。4.分布式java建立在tcp/ip網絡平臺上,提供了用http和ftp協議傳送和接受信息的庫函數,使用其相關技術可以十分方便的構建分布式應用系統。5.健壯性java致力與檢查程序在編譯和運行時的錯誤,并自動回收內存,減少了內存出錯的可能性。java取消了c語言的結構、指針、#define語句、多重繼承、goto語句、操作符、重載等不易掌握的特性,提供垃圾收集器自動回收不用的內存空間。3.2 j2me及其體系結構概述 3.2.1 j2m
31、e簡介 j2me(java 2 micro edition)是java 2的一個組成部分,它與j2se、j2ee并稱。根據sun的定義:j2me是一種高度優(yōu)化的java運行環(huán)境,主要針對消費類電子設備的,例如蜂窩電話和可視電話、數字機頂盒、汽車導航系統等等。j2me技術在1999年的javaone developer conference大會上正式推出,它將java語言的與平臺無關的特性移植到小型電子設備上,允許移動無線設備之間共享應用程序。 j2me 在設計其規(guī)格的時候,遵循著對于各種不同的裝置而造出一個單一的開發(fā)系統是沒有意義的事這個基本原則。于是 j2me 先將所有的嵌入式裝置大體上區(qū)分
32、為兩種 :一種是運算功能有限、電力供應也有限的嵌入式裝置(比方說pda 、手機);另外一種則是運算能力相對較佳、并且在電力供應上相對比較充足的嵌入式裝置 (比方說冷氣機、電冰箱、電視機上盒 (set-top box)。因為這兩種型態(tài)的嵌入式裝置,所以java 引入了一個叫做configuration 的概念,然后把上述運算功能有限、電力有限的嵌入式裝置定義在connected limited device configuration(cldc)規(guī)格之中;而另外一種裝置則規(guī)范為 connected device configuration(cdc)規(guī)格。也就是說, j2me 先把所有的嵌入式裝置
33、利用configuration 的概念區(qū)隔成兩種抽象的型態(tài)。 與j2se和j2ee相比,j2me總體的的運行環(huán)境和目標更加多樣化,但其中每一種產品的用途卻更為單一,而且資源限制也更加嚴格。為了在達到標準化和兼容性的同時盡量滿足不同方面的需求,j2me的架構分為configuration、profile和optional packages(可選包)。它們的組合取舍形成了具體的運行環(huán)境。 3.2.2 j2me 體系結構當前很多資料上都將j2me的體系劃分為3個,即:java虛擬機,配置和和簡表。對于各層次的詳細解釋和功能如下:1) java虛擬機在j2me中提供了2中java虛擬機。由于jvm是j
34、ava代碼運行時必須的,只有任何設備上有了jvm才能很好的解釋“一次編譯,到處運行”的關鍵技術。那么在嵌入式或移動設備中也需要jvm作為操作系統和java應用程序間的接口。但是由于內存的限制,嵌入式設備的jvm也要特殊提供。 j2me中提供的jvm分為cvm和kvm,是jvm的縮減版,kvm比cvm功能稍弱。 cvm(compact virtual machine),最初是這種解釋的,但是后來對于c沒有任何意義了。只是cvm虛擬機主要運行在存儲量較大的嵌入式設備,比如可視電話、pos收款機等。kvm是最小運行時環(huán)境的一部分,也就是用于cpu和內存較小的設備,這里的k是千字節(jié)的意思。kvm主要用
35、于移動電話,個人數字助理(pad)等小型設備。2) j2me配置簡介當前提供的j2me配置有兩類,cdc和cldc。cdc(connection device configuration)連接設備配置主要用于存儲量較大,內存2mb以上的設備中,大多用于cvm虛擬機。其用戶接口較多。網絡寬帶有限,所以有很多不同的簡表。而其最大的特點就是支持浮點數。包含了所有cldc中定義類和接口。cldc(connection limited device configuration)有限連接設備設置。主要用于小型的資源較小的設備中,針對內存小于512kb的嵌入式系統。采用kvm虛擬機。其特點是很多j2se的類
36、和接口沒有實現,最大的特點就是不支持浮點數。3) midp(mobile information device profile)移動信息設備簡表這里主要針對的是cldc設備。包含3個生命周期和事件處理等機制。paused 狀態(tài):程序處于暫停狀態(tài),方法:pauseapp();actived狀態(tài):程序處于運行活動狀態(tài),方法:startapp();destroy狀態(tài):程序運行銷毀結束前的狀態(tài),方法:destroyapp();midp包含其他事件處理狀態(tài)和機制。4 開發(fā)環(huán)境簡介4.1 wireless tool kit 簡介 wtk是woldtookkit的簡稱,由美國的scene8公司開發(fā),目前的最
37、高板本是release10.0。它是一種在opengl或directx的基礎上開發(fā)的更高層次的實時3d圖形驅動系統。wtk能在windows,unix,linux等操作系統上運行。 wtk是一個c函數庫,大約有1000個c函數,分別用來組織管理虛擬場景,加載、渲染模型文件,提供了豐富的2d和3d字庫,直接支持數十種常用輸入輸出設備,提供三維立體聲,實現網絡分布式系統設計,支持多cpu系統。wtk為開發(fā)這屏蔽了很多開發(fā)這并不關心的細節(jié),例如要開發(fā)一個通過6自由度空間球漫游樓房的系統,模型文件是用creator制作的,開發(fā)者并不關心空間球和計算機是怎么通訊的,也不關心怎么把*.flt文件轉化為op
38、engl內渲染的小面片,更不關心怎么計算每個每個面片的法向等等,開發(fā)者只關心怎么把這個場景組建起來,運行起來。wtk讓開發(fā)者完成了所有那些開發(fā)這不關心的事情,并提供了一個很好機制讓開發(fā)者組建、管理它的虛擬場景。4.2 eclipse 開發(fā)環(huán)境的建立4.2.1 什么是eclipse? eclipse是一個開放源代碼的、與netbeans、sun one studio和borland jbuilder類似的一種基于java的整合型可擴展開發(fā)平臺,也是目前最著名的開源項目之一,ibm在最近幾年里也一直在大力支持該項目的發(fā)展,目標是將其做成用以替代ibm visual age for java(簡稱i
39、vj)的下一代ide開發(fā)環(huán)境,并于2001年11月宣布投入4千萬美元資金到該項目的研發(fā)。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,eclipse 附帶了一個標準的插件集,包括 java 開發(fā)工具(java development tools,jdt)。其未來的目標不僅僅是成為專門開發(fā)java程序的ide環(huán)境,根據eclipse的體系結構,通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。4.2.2 eclipse的主要組成 eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質的工業(yè)平臺。它主
40、要由eclipse項目、eclipse工具項目和eclipse技術項目三個項目組成,具體包括四個部分組成-eclipse platform、jdt、cdt和pde。jdt支持java開發(fā)、cdt支持c開發(fā)、pde用來支持插件開發(fā),eclipse platform則是一個開放的可擴展ide,提供了一個通用的開發(fā)平臺。它提供建造塊和構造并運行集成軟件開發(fā)工具的基礎。eclipse platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結束,而另一個工具功能在哪里開始。eclipse sdk(軟件開發(fā)者包)是eclipse platform、jdt和pde所生產
41、的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到eclipse platform中的工具。eclipse sdk由eclipse項目生產的工具和來自其它開放源代碼的第三方軟件組合而成。eclipse項目生產的軟件以 cpl發(fā)布,第三方組件有各自自身的許可協議。4.2.3 什么是eclipseme?eclipseme作為eclipse一個插件,致力于幫助開發(fā)者開發(fā)j2me應用程序。eclipseme并不為開發(fā)者提供無線設備仿真器,而將各手機廠商的實用仿真器緊密連接到eclipse開發(fā)環(huán)境中,為開發(fā)者提供一種無縫統一的集成開發(fā)環(huán)境。4
42、.3 midp 2.0簡介midp即移動信息簡表(mobile information device profile)針對的是移動信息設備,或者體積較小、能力有限的手持設備(mid),這些設備的共性是具有用戶接口即屏幕和輸入機制。midp目標設備的典型例子就是手機。midp 2.0相較之前的1.0版本,加強了對用戶接口、多媒體和游戲功能、網絡連接功能的支持,主要包括以下幾個方面: midp 2.0提供的游戲api使得游戲本身可以充分地利用設備自身的圖形處理功能。它的出現大大簡化了j2me游戲的開發(fā)工作,同時也使開發(fā)者能夠更多地控制程序的圖形處理功能。 在通信方面,midp 1.0僅支持http
43、,midp 2.0增加了對https、報文、socket通信以及串口通信的支持。此外,midp 2.0還支持push體系架構,這樣,手機能夠收到來自服務器的報警、消息或者廣播,并根據要求啟動手機上的應用程序進行操作。 支持0ver-the-air(ota)provisioning,它使用戶能夠動態(tài)地部署和更新移動設備上的應用程序。 midp ota provisioning模型為移動服務提供商提供了單一、標準地部署midp應用程序的途徑。該模型已經被眾多技術領先的移動設備制造商和服務提供商所采納。n midp 2.0增加了強大的“端到端”安全模型。一方面,midp 2.0支持https,可以對
44、所傳輸的資料進行加密;另一方面,midp 2.0采用了和midp 1.0不同的安全機制,采用安全與來確保未經授權的midlet套件無法訪問受權限控制的數據、應用程序以及其他網絡和設備資源。5 游戲的設計5.1 任務介紹5.1.1 目標 項目實現了玩家(吃豆人)躲避npc,并吃掉豆子的所有基本功能,同時,為了滿足人們的個人需求我們加入了很多游戲個性化效果。我們加入了各種背景圖片以供選擇,從而實現畫面的美觀、簡潔、有吸引力;加入了音樂、音效和flash動畫效果等,從而使游戲從感官上更加吸引玩家;加入了自主設置鍵盤的操作,從而使操作更加簡單,更容易上手,且不易失誤。我們會力爭使游戲具有可靠性,安全性
45、,完整性,靈活性,開發(fā)出一款更加適合人們需求的吃豆子手機游戲。5.1.2 項目背景 吃豆人(pac-man)是一部由同名街機游戲移植至atari 2600平臺的游戲,最早由南夢宮公司于1980年在街機上推出,后由雅達利公司于1982年3月中旬發(fā)售atari 2600版。雅達利公司在當年3月3日舉辦了雅達利國際吃豆人節(jié),為本作的發(fā)售造勢。在當時,atari 2600(以下簡稱2600)是世界上最受歡迎的家用游戲主機,而吃豆人又是世界上最受歡迎的街機游戲,因此雅達利熱心地推銷了本游戲的2600版。但是由于移植效果很不完美,本作在發(fā)售后便廣受批評,實際銷量遠小于預期值,即使是購買了本游戲的玩家對游戲
46、也頗有微辭。與e.t.外星人以及其他一些來自第三方制作人的劣質游戲(如卡斯特的復仇)一道,吃豆人成為導致1983年北美家用機市場崩潰的誘因之一。因為這些游戲摧毀了普通用戶對雅達利、甚至是對整個家用機游戲產業(yè)的忠誠度。本游戲低劣的移植效果被歸咎于雅達利公司市場部門過于急切地試圖提早發(fā)售游戲。雅達利要求其主要的程序員之一托德·福萊耶(tod frye)負責移植游戲,后者給他們拿出了一個事先做好的不完整版本。在試圖趕在1981年圣誕節(jié)檔期讓游戲上市未果后,雅達利基于這個不完全版本開發(fā)了本作。雅達利生產了1200萬份本游戲的卡帶,并售出700萬套。當時總共只賣出過1000萬臺2600游戲機,
47、雅達利冀望于本游戲足以帶動游戲主機的銷售。當這一期待落空后,雅達利只得銷毀剩下的500萬套游戲卡帶,導致巨額虧損。5.1.3 運行環(huán)境開發(fā)環(huán)境:windows(xp/vista/win7)+eclipse+eclipseme+wtk開發(fā)語言:javacldc: 1.0midp: 1.0應用程序類型:jar打包文件文檔和代碼版本管理:microsoft visual sourcesafe 20055.2 功能需求5.2.1 游戲菜單設置按游戲界面的"開始"菜單來開始游戲;"暫停"菜單暫停游戲; "結束"菜單結束游戲;"設置&q
48、uot;菜單對游戲進行設置,實現個性化設置。5.2.2 游戲界面的需求游戲界面需求:設計良好的游戲界面可以讓玩家充分感受到游戲帶來的娛樂性,游戲的背景色是黑色,有4種不同顏色的npc.5.2.3 游戲簡介該游戲共有三個等級:初級、中級、高級。 "級數"為游戲當前等級,當分數達到當前等級的最高值,等級會提升、速度會加快。玩家可以任意選擇級別,當分數到達晉級分數(當前等級與下一級的分數差)后自動晉級,分數繼續(xù)累加。游戲結束時,如果得分進入前八名,英雄榜將記錄你的姓名、分數,并為你排名。5.2.4 手機鍵盤處理事件需求手機鍵盤處理事件需求:游戲開始時,可通過手機鍵的方向鍵(上、下
49、、左、右鍵)對該吃豆人進行方向的移動,來躲避npc的追擊,并吃掉途中的豆子。5.3 游戲的具體設計5.3.1 游戲導讀吃豆游戲的規(guī)則是:黃色的大豆子代表自己,你需要把畫面內所有黃色的小豆豆都吃掉,但又不能掉進陷阱,而同時又有大的綠色,橙色,粉色,紅色的敵人追殺你,如果你實在逃不出敵人的魔掌,你可以吃白色的能量球,那么你就會在一定時間內處于無敵模式,可以吃掉陷阱和敵人!如果全部黃色的小豆豆都吃掉了,那么恭喜你,您過關了! 5.3.2 游戲目的通過設計對各個功能的設定,研究出適合人們玩的一款游戲 5.3.3 設計思路 游戲的設計思路:游戲創(chuàng)意游戲規(guī)劃程序實現游戲調試 5.3.4 游戲創(chuàng)意 吃豆人游
50、戲真可謂是一款經典到家的迷你游戲了,想當年在pc機上通宵達旦的熟悉通關的技能?,F如今自己可以通過學習來設置這款游戲了。游戲創(chuàng)意:當年pc機上的吃豆游戲。6 詳細設計6.1程序系統結構本游戲的設計采用mvc模式(model -view -controller),即把本游戲的輸入、處理、輸出流程按照model、view、controller的方式進行分離,這樣本游戲的設計被分成三個層-模型層、視圖層、控制層。mvc模型圖如下所示:6.2 程序結構、思想6.2.1 本程序需要解決的主要技術問題 1.游戲程序是一項精度要求很高的程序系統,因為其代碼利用率很高。一個實時運行的最終作品,每秒都會運行成千上
51、萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應,若有絲毫的差別都將容易導致程序在運行不久后可能出現嚴重錯誤,甚至死循環(huán)。因此,其邏輯設計應當相當嚴謹,需將所有可能發(fā)生的事件及意外情況考慮在設計中。 2.游戲中為了美觀,適用性強,可能采用外部文件引入的圖片貼圖,有關貼圖,在midp2.0中提供了用于增強游戲功能的game包,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。 3.玩家的運行可以通過鍵盤的響應事件控制,但敵方則因為是自動運行,就需要有一定的智能性;敵人的運行算法也要進行相關的設置,以免游戲過于簡單。 4.游戲的地圖不可能通過繪圖來解決。否則,不僅難于控
52、制和處理過多的元素,也會因為過多的大型圖片而不能限制程序的大小,失去手機上程序的原則和java的優(yōu)勢。 5.游戲的結束、開始、動態(tài)信息畫面作為構成一個程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標,相關的美術構圖和人性化設置也需要有一定的考慮。6.2.2 程序流程本程序中涉及到兩個類,分別是eatdot和maincanvas兩個。其中eatdot是主類,而maincanvas是游戲的主要設計以及算法部分。下面作簡單介紹游戲的程序設計:1. 圖片的采取及顏色的繪制 public maincanvas(command command, command command1) seed
53、= 1; /這部分是一些變量的初始化處理 state = 0; imgs = new image27; gx = new int3; gy = new int3; gdir = new int3; gstate = new int3; gcount = new int3; glook = new int3; slook = new int4; sx = new int4; sy = new int4; scount = new int4; counter = 0; f = font.getfont(0, 0, 0); scorechars = new char6; levelchars = n
54、ew char2; dummyscore = "00000" dummylevel = "00" /system.out.println("main error 1"); startcommand = command; pausecommand = command1; /system.out.println("main error 2 "); try / 圖片加載異常捕捉 maze = image.createimage("/pacmaze.png"); for(i = 0; i < 27; i+) imgsi = image.createimage("/img" + i + ".png"); catch(ioexception ioexception) /system.out.println("main error 3 "); w = getwidth(); /設置長寬分別用w h表示,只是為了后面用時簡潔 h = get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鉛白市場發(fā)展現狀及前景趨勢分析報告
- 2025-2030年中國鎢鐵行業(yè)發(fā)展現狀及前景趨勢分析報告
- 2025-2030年中國轎車懸架彈簧轎行業(yè)發(fā)展狀況及前景趨勢分析報告
- 2025-2030年中國葡萄糖酸鈣市場競爭狀況及投資趨勢分析報告
- 2025-2030年中國色選機市場競爭格局及發(fā)展趨勢分析報告
- 2025-2030年中國紡織品直噴墨水行業(yè)發(fā)展趨勢與十三五規(guī)劃研究報告
- 2025-2030年中國立磨市場運行態(tài)勢及投資戰(zhàn)略研究報告
- 2025-2030年中國硫磺回收市場運行狀況及發(fā)展趨勢預測報告
- 2025-2030年中國石蠟行業(yè)市場運行狀況及發(fā)展策略分析報告
- 亞??谱o理建設思路
- 500-3000總噸船舶大副培訓大綱(2021版)
- 公務員2019年國考《申論》真題及答案(地市級)
- 輪系獲獎課件
- 小學三年級下冊體育教案
- 【《蘇泊爾公司存貨管理的優(yōu)化建議分析》13000字論文】
- 2024年車載SoC發(fā)展趨勢及TOP10分析報告-2024-09-零部件
- 伽馬數據:2024年中國游戲產業(yè)趨勢及潛力分析報告
- 北師大版八年級生物下冊全冊課件(2024年春季版)
- 高一英語完形填空專項訓練100(附答案)及解析
- 機房基礎設施運行維護管理標準規(guī)范
評論
0/150
提交評論