【正文】
of this thesis mainly introduces the research background, research status and development trend. The second chapter mainly introduced this system has the main functions and the function analysis. The third chapter mainly introduces the design thought of this system at. The fourth chapter mainly introduces the system implementation. This system make full use of the game development package of various types of mobile phone game, realize the key control plane about the next operation, missiles, treatment, store purchase implementation. Program control planes and bombs of the operation, position etc.. This system using double buffering technology, run up without the splash screen. But because of the time and the technology, the function of this system is not yet perfect. Key words: J2ME。 Java 斗破蒼穹(手機(jī)游戲設(shè)計(jì)) 1 第 1 章 緒論 研究 背景 游戲作為人們?nèi)粘I畹囊粋€(gè)重要的娛樂項(xiàng)目,也帶動(dòng)了巨大的游戲相關(guān)產(chǎn)業(yè)市場(chǎng)的發(fā)展。隨著新技術(shù)的發(fā)展和人們生活水平的提高,手機(jī)開始逐漸普及,手機(jī)以其小巧便捷,方便的特性成為人們的必備通訊工具。 (2)傳統(tǒng)手機(jī)訪問互聯(lián)網(wǎng)是通過 WAP(Wireless Application Protocal),所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時(shí)、費(fèi)用亦很高。 研究意義 應(yīng)用程序可按需下載,而不是購買由硬件商提供的套件,可升級(jí)空間大。 游戲軟件是一種與文化背景密切聯(lián)系的產(chǎn)品,具有很強(qiáng)的民族性和豐富的文化內(nèi)涵。因此發(fā)展我國(guó)自主的益智、健康的游戲軟件已是當(dāng)務(wù)之急。當(dāng)前開發(fā)的游戲軟件應(yīng)該做到知識(shí)性、娛樂性、趣味性、教育性相統(tǒng)一 。日本是游戲產(chǎn)業(yè)最發(fā)達(dá)的國(guó)家,早在幾年前,日本的手機(jī)游戲業(yè)就已經(jīng)蓬勃發(fā)展起來。雖然美國(guó)相對(duì)于日本及一些歐洲國(guó)家,在手機(jī) Java 游戲方面的發(fā)展相對(duì)滯后,但是在 2020 年,其手機(jī)游戲市場(chǎng)的收入也已經(jīng)達(dá)到 1600 萬美元。但是目前僅有不足 1%的用戶下載過手機(jī)游戲,這使得這塊被無數(shù)人看好的市場(chǎng)并沒有達(dá)到和人們預(yù)期相吻合的水平。 發(fā)展趨 勢(shì) 未來的手機(jī)游戲平臺(tái)因?yàn)?ATI和 nVIDIA兩大 PC顯示芯片廠商專業(yè)級(jí)水準(zhǔn)的加入而更為熱鬧。這些芯片在植入手機(jī)后能夠有效的提升圖形顯示性能,使手機(jī)在進(jìn)行多媒體演示和游戲時(shí)更夠有出色顯示效果。目前已知 NVIDIA AR10 與 ATI Imageon 23xx 3D 芯片,已符合 OpenGL ES 的標(biāo)準(zhǔn)。相信不久后,手機(jī)上也能玩像是 CS、 DOOM、 Quake 的 FPS 游戲了。目前 Direct3Dm 尚在制定階段, nVIDIA 在法國(guó)戛納舉行的 3GSM 世界年會(huì)上發(fā)布的 AR10 就是支持 Direct3Dm 新產(chǎn)品。目前 ATI 的產(chǎn)品據(jù)稱已經(jīng)集成到日本最 新一代 3G FOMA 手機(jī) F900I 中,而該機(jī)正好采用的是 symbian 操作系統(tǒng)。 設(shè)計(jì)原理 采用 java 面向?qū)ο蟮脑O(shè)計(jì)思想,主要涉及和用到 J2ME 中的 類和功能有 : Display 類代表了系統(tǒng)顯示屏和輸入設(shè)備的管理器 ,包含用來獲取設(shè)備屬性的方法,以及要求在設(shè)備上顯示的對(duì)象的方法。 游戲 畫布 類 中 提供游戲基本接口 緩沖技術(shù) , 直接得道 設(shè)備鍵盤的物理狀態(tài)等, 精靈類中的圖片分割 顯示技術(shù) 。 分塊 圖層 類中的 圖片分塊 平鋪 填充 技術(shù) 來實(shí)現(xiàn)游戲的背景連續(xù)無間隔的顯示 。 player 類中的 音樂 播放技術(shù) 來實(shí)現(xiàn)游戲的背景音樂 。 方案選擇 本程序的實(shí)現(xiàn)方案可以通過使用 2個(gè)不同的類來實(shí)現(xiàn)游戲的全部功能 方案 一: 主要使用 Canvas 類 ,且不引入精靈類來實(shí)現(xiàn) 斗破蒼穹(手機(jī)游戲設(shè)計(jì)) 4 使用此類來實(shí)現(xiàn) 飛機(jī)和子彈的碰 撞檢測(cè),需要親自來編寫,而最大的不足在于如果自己編寫碰撞檢測(cè)的話 ,只能達(dá)到一個(gè)特定的區(qū)域的檢測(cè),也就是子彈所在的矩形區(qū)域和飛機(jī)所在的矩形區(qū)域,利用是否有重疊的方法來檢測(cè)碰撞,但是存在一個(gè)問題就是子彈和飛機(jī)不可能是規(guī)則的矩形圖像,也就是說 當(dāng) 子彈從飛機(jī)的左邊或者右邊過來的時(shí)候,當(dāng)進(jìn)入飛機(jī)所在的矩形區(qū)域的時(shí)候就會(huì)認(rèn)為子彈碰上了飛機(jī),但是事實(shí)上是沒有碰到的,而程序確認(rèn)為它們 相撞 了,所以這樣的方法存在一個(gè)檢測(cè)不準(zhǔn)確的問題 。在使用此方法的過程中還證實(shí)了還存在一個(gè)鍵盤事件響應(yīng)的問題,重載 keyPress()方法來監(jiān)聽鍵盤的時(shí)候不能夠使用十進(jìn)制求余 的方法來偵聽用戶按下了 哪 個(gè)按鍵,所以在速度和性能上都比較不理想。 故選擇方案 2來實(shí)現(xiàn)此次所開發(fā)的程序。 (2)MyGameCanvas 類 程序最主要是用來在屏幕上繪制游戲選擇 菜單界面、游戲幫助界面、關(guān)于游戲界面、 游戲設(shè)置界面 、 關(guān)卡選擇界面 、商店物品購買界面和購買成功提示界面,以及玩家飛機(jī)和敵機(jī)的繪制、 子彈與飛機(jī)碰撞的檢測(cè) 、 金幣圖片的繪制 、 玩家飛機(jī)生命的繪制 , 實(shí)現(xiàn)了按鍵的偵測(cè)和事件處理。 (4)Bullet 類主要實(shí)現(xiàn)了敵機(jī)子彈和玩家子彈的產(chǎn)生以及移動(dòng)的控制 。 (6)Sound 類主要實(shí)現(xiàn)游戲背景音樂的播放 。 (2)在對(duì) J2ME 射擊類 (FPS)游戲有個(gè)清晰的認(rèn)識(shí)和了解,并且對(duì)自己的的程序有個(gè)清晰的構(gòu)思 , 然后 按照軟件開發(fā)的總過程進(jìn)行設(shè)計(jì) ,經(jīng)歷定義和計(jì)劃、需求分析、軟件設(shè)計(jì)、軟件編碼、軟件測(cè)試等過程,研究開發(fā)自己的程序。游戲控制的實(shí)現(xiàn),游戲控制方面包含通常的“開始”,“退出”,“繼續(xù)”,游戲中的“暫?!边€有關(guān)卡選擇的控制。 本系統(tǒng)在游戲運(yùn)行方面做了背景、子彈、敵機(jī)、玩家飛機(jī)、金幣、生命、游戲菜單和飛彈的繪制。 其中開始游戲并不是直接進(jìn)入游戲,而是進(jìn)入關(guān)卡選擇菜單。關(guān)卡選擇菜單包括第一關(guān)到第六關(guān)的繪制和武器商店的繪制,其中每一個(gè)選擇點(diǎn)包含著對(duì)應(yīng)的標(biāo)題和說明,說明文字每次向上滾動(dòng)一行。 對(duì)應(yīng)的物品有對(duì)應(yīng)的說明, 武器商店界面 中機(jī)體提供玩家購買飛機(jī)的地方,機(jī)槍可以讓玩家升級(jí)武器,彈艙是增加在游戲可以使用的飛彈上限,飛彈是提供玩家購買飛彈的地方,配件是提供玩家購買配件的地方,配件可以增加飛機(jī)的固有屬性(生命,防御??)。 游戲控制模塊包含了游戲的基本控制,開始、退出、繼續(xù)還有游戲中的暫停 和關(guān)卡選擇、武器購買等。 武器商店是本系統(tǒng)的一大特色,其中機(jī)體 一共有三種,分別子彈不同,攻擊強(qiáng)度也不同。 飛彈一共有三種,分別為全屏消子彈、攻擊敵機(jī)、和這兩者的結(jié)合。配件設(shè)計(jì)的也是三種,暫定的三種配件分別加攻擊,防御和生命這幾大屬性。 其中游戲的每一關(guān)有不同的背景,背景采用的是一張首尾無間隙連接的圖片。玩家每種飛機(jī)的子彈有四種。 敵機(jī)暫時(shí)設(shè)計(jì)的有兩種,第一種出現(xiàn)位置是在屏幕的上半部分邊緣隨機(jī)出現(xiàn),然后選擇隨機(jī)的移動(dòng)軌跡進(jìn)行移動(dòng)。第二種敵機(jī)隨機(jī)出現(xiàn)在屏幕的上邊緣,第二種敵機(jī)有兩種移動(dòng)軌跡。敵機(jī)都有檢測(cè)是否被攻擊的方法,然后執(zhí)行相應(yīng)的動(dòng)作。 玩家飛機(jī)隨時(shí)判斷按鍵狀態(tài),一旦對(duì)應(yīng)方向狀態(tài)改變則飛機(jī)向相應(yīng)方向移動(dòng)飛機(jī)共有八個(gè)移動(dòng)的方向上、下、左、右和左上、右上、左下、右下。 同時(shí)玩家飛機(jī)出現(xiàn)的時(shí)候隨之而出現(xiàn)的有子彈。另一種是敵機(jī)被打爆后爆出來的金幣,一旦被玩家“吃掉”或移除屏幕就會(huì)消失。就構(gòu)成了生命顯示效果。 在屏幕的右下方繪制的是飛彈,飛彈是當(dāng)觸發(fā)一定的按鍵事件時(shí)才會(huì)激活。 斗破蒼穹(手機(jī)游戲設(shè)計(jì)) 9 關(guān)鍵功能分析 (1)在上 述功能中玩家金幣余額的顯示是一個(gè)難點(diǎn),因?yàn)槲覀円龅降氖侨我饨o一個(gè)六位以內(nèi)的數(shù),然后把這六位數(shù)的每一位對(duì)應(yīng)圖片 ( )然后顯示在屏幕上。針對(duì)這個(gè)問題我們這樣思考: 09十個(gè)數(shù)正好對(duì)應(yīng)圖片的分塊后的十個(gè)圖片。 (2)關(guān)于玩家飛機(jī)生命的繪制分析,玩家的生命在這里我們使用的是一張圖片,每當(dāng)玩家飛機(jī)生命減 少時(shí), 圖片就向左移動(dòng)一定距離,配合另一張圖片生命槽兩相結(jié)合就可以達(dá)到生命顯示的效果,其中關(guān)鍵的是,圖片左移的距離和玩家飛機(jī)生命減少的一個(gè)比例關(guān)系。所以在這里我們需要算好飛機(jī)減生命時(shí),對(duì)應(yīng)生命的圖片應(yīng)該移動(dòng)多少,而且玩家飛機(jī)被不同的攻擊,減的生命也不同。 這里 要注意的 是,需要讓出現(xiàn)的敵機(jī) 不會(huì)出現(xiàn)“初始位置在左上角,移動(dòng)的方向卻是左下方。還有敵機(jī)移動(dòng)軌跡為曲線的問題,在本系統(tǒng)中,我們思考,敵機(jī)軌跡之所以為曲線,其本質(zhì)是因?yàn)樵谝苿?dòng)的時(shí)候它的方向是一直在變化的。不能太密,又必須在屏幕內(nèi),而且最好在屏幕的上半部分 并且敵機(jī)子彈最好又要跨過大半個(gè)屏幕盡量不要在貼近屏幕邊緣發(fā)射。 斗破蒼穹(手機(jī)游戲設(shè)計(jì)) 11 第 3 章 系統(tǒng)設(shè)計(jì) 本程序是基于 J2ME 技術(shù)的飛行射擊 類 游戲,為玩家打造了一個(gè)功能強(qiáng)大, 場(chǎng)景真實(shí),趣味十足的 天 空戰(zhàn)斗 手機(jī)游戲,本游戲共分為 6 關(guān) ,每一關(guān)玩家都在不同的場(chǎng)景中戰(zhàn)斗,玩家可以通過購買武器裝備來提高自身的戰(zhàn)斗力,如果金幣不夠也可在打敗對(duì)方飛機(jī)的 時(shí)候獲得對(duì)方飛機(jī)所產(chǎn)生的物品獎(jiǎng)勵(lì),從而也可提高自身的戰(zhàn)斗力,并且玩家多次的玩本游戲的話金幣還可以保存下來累加起來,也可保存已經(jīng)購買過武器裝備,以便下次使用。 (2)游戲菜單模塊:主要繪制游戲中所出現(xiàn)的菜單包括“主菜單”、“關(guān)卡選擇菜單”、“武器商店菜單”、“暫停菜單”。 包括背景、玩家斗破蒼穹(手機(jī)游戲設(shè)計(jì)) 12 飛機(jī)、玩家 子彈、玩家金幣余額、玩家生命、敵機(jī)、敵機(jī)子彈、飛彈等元素的繪制。 在本系統(tǒng)中我主要負(fù)責(zé)游戲運(yùn)行模塊的設(shè)計(jì)及其實(shí)現(xiàn)。 (3) ,開發(fā) j2me 手機(jī)游戲需要用的插件 (4)(Wireless ), 由 Oracle 公司提供 (5)( JAVA Development Kit ) , 由 Oracle 公司提供 (6)手機(jī) 頑童 模擬器 用于測(cè)試打包程序最 好的模擬器 選擇 eclipse+eclipseme+wtk 是因?yàn)檫@三件套 開發(fā) j2me 手機(jī)游戲非常方便 ,由eclipse 所提供的便捷功能,使得不必記住每一個(gè)類的方法全稱,就可以輕易的書寫代碼。 詳細(xì) 設(shè)計(jì) 總體 設(shè)計(jì) 本系統(tǒng)的設(shè)計(jì)共包含 GameStart、 MyGameCanvas、 PlayPlane、 EnemyPlane、 Bullet、Sound 六個(gè)類 的設(shè)計(jì) 。 Sound 類實(shí)現(xiàn)音樂的播放。 其中主要有 move()方法控制玩家飛機(jī)的移動(dòng) 。setExplod()方法設(shè)置爆炸初始化工作 。getmoney(