下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于j2me的手機導彈戰(zhàn)役游戲軟件
隨著手機在中國的普及和java功能在移動設備上的實現(xiàn),java應用程序生成的移動電話服務逐漸受到限制。手機游戲軟件的開發(fā)已經(jīng)成為軟件行業(yè)的一支迅速發(fā)展的新力量。本文基于這種技術與社會的雙重驅動,開發(fā)一款基于J2ME架構的手機坦克大戰(zhàn)游戲軟件。1平臺和軟件開發(fā)1.1j2me技術實現(xiàn)J2ME是Sun公司的Java技術平臺之一,它是一種以廣泛使用的消費性產(chǎn)品為目標的高度優(yōu)化的Java運行環(huán)境,包括移動電話、尋呼機、個人數(shù)字助理、數(shù)字機頂盒汽車導航系統(tǒng)等。Java內(nèi)部分為三層,從上到下分別是虛擬機(VM)、配置層(Configuration)和框架層(Profile)。針對手機內(nèi)存少、速度慢和IO差的特點,J2ME做了特殊的實現(xiàn):在配置層,J2ME規(guī)定了連接有限設備配置(簡稱CLDC);在框架層,J2ME規(guī)定了移動信息設備框架(簡稱MIDP)。其中CLDC包括J2ME的核心API,MIDP包括用戶接口(UI)和HTTP連接等J2ME擴展API。因此,手機游戲軟件的開發(fā)實際上就是在J2ME的框架層上開發(fā)程序,也就是基于MIDP進行開發(fā)。1.2生命周期及存在狀態(tài)MIDlet是MIDP類型的應用程序,在MIDP規(guī)格中定義了MIDlet的生命周期,以及可以存在的3種狀態(tài),包括停止狀態(tài)(Paused)、運行狀態(tài)(Active)以及消滅狀態(tài)(Destroyed),每一個MIDlet在任何時刻只可能處于其中的一個狀態(tài),這些狀態(tài)可以在一定條件下向另一狀態(tài)轉換。2軟件功能和主要類別的劃分2.1控制地圖、控制彈性能力手機坦克大戰(zhàn)游戲軟件設置為在一個特定的場景中的敵我雙方坦克的對戰(zhàn),敵方坦克由系統(tǒng)控制,自動的發(fā)射子彈;我方坦克由玩家控制,系統(tǒng)為玩家提供控制坦克運行和子彈發(fā)射攻擊的方法。開發(fā)過程中我們用一幅地圖來表現(xiàn)作戰(zhàn)的場景,地圖是MIDlet唯一支持的PNG格式靜態(tài)圖片,為了游戲的真實感,游戲軟件中設置控制地圖調(diào)度和移動的機制。敵方的攻擊能力主要體現(xiàn)在坦克的運行軌跡和子彈的發(fā)射時間和運行軌跡上,敵方坦克和子彈的智能運行是保證游戲軟件的可玩性的關鍵。游戲軟件為玩家提供坦克運行的各種控制鍵,游戲軟件中定義了子彈的發(fā)射鍵以及控制坦克運行方向的上、下、左、右鍵。2.2主要分類和劃分根據(jù)手機坦克大戰(zhàn)游戲軟件功能,將軟件劃分為TankMain、StartChoice、BattleCanvas和ScoreScreen4個主要的類。(1)tankmin繼承自MIDlet,用于控制整個游戲的流程,游戲軟件啟動時該類即被自動的載入。(2)啟動游戲時的創(chuàng)傷機受控于TankMain,TankMain用StartChoice來實現(xiàn)為玩家提供選項的功能,StartChoice提供的選項包括:開始游戲、怎樣游戲和關于游戲。(3)tsle-nva類控制攻擊的過程是游戲軟件的主邏輯類,在玩家選擇開始游戲后系統(tǒng)便用BattleCanvas類來控制戰(zhàn)斗的過程,在戰(zhàn)斗過程中涉及到地圖載入和移動、敵方坦克和子彈的生成和運行、戰(zhàn)斗致使敵我雙方的坦克和子彈的消減以及為玩家統(tǒng)計分數(shù)等功能。(4)scheecen在每關的結束或玩家死亡后都將載入類來統(tǒng)計當前的分數(shù)。3關鍵技術3.1游戲中的邏輯游戲軟件主邏輯類BattleCanvas主管著游戲的戰(zhàn)斗進行過程中所有類之間的協(xié)調(diào),決定敵方坦克何時死亡、何時分配新的敵方坦克、敵方子彈的運行及軌跡等。BattleCanvas運行在獨立的線程中,以恒定的頻率(20ms)刷新畫面。BattleCanvas主要邏輯如圖1所示。游戲軟件用精靈類EnemySprite和UserSprite來描述敵方坦克和玩家坦克,通過在BattleCanvas類中創(chuàng)建EnemySprite和UserSprite的對象的方式來控制坦克在游戲中的存在。BattleCanvas類中用MIDlet提供的LayerManager來實現(xiàn)畫面管理,這樣所有靜態(tài)和動態(tài)的圖象都不需要手動刷新,只需要在LayerManager中加入所有需控制的元素,再統(tǒng)一由LayerManager刷新即可。BattleCanvas運行時首先檢測敵方坦克數(shù)量,當敵方坦克數(shù)量為0時所有游戲便結束,這是玩家勝利的狀態(tài)。在戰(zhàn)斗進行的狀態(tài),玩家每過一關都要進行分數(shù)統(tǒng)計,進入下一關之前要對坦克數(shù)量和狀態(tài)進行重新配置。如果玩家已經(jīng)死亡,就需要使用LayerManager的insert()將“Gameover”字樣插入到最上層,以免被其他物體覆蓋。3.2u3000掃碼發(fā)炮后的能量檢測為了保證游戲軟件中子彈運行的獨立性和多邊性,在游戲軟件實現(xiàn)上每一個子彈對象都運行在獨立的線程中,并且設置變量isFromEnemy來標識子彈是屬于玩家還是敵人,這樣可以控制子彈脫離坦克管束后在運行狀態(tài)中的行為。子彈運行的主要功能流程見圖2。當子彈擊中障礙物時,要分兩種情況處理:(1)子彈擊中草時,由于沒有定義相關函數(shù),就不會有任何反映,子彈會重合在草上正常通過;(2)子彈擊中磚塊時,將產(chǎn)生爆炸,調(diào)用setCell將當前塊置為空,并產(chǎn)生爆炸效果。爆炸效果由tileExplode(x,y)根據(jù)需要爆炸的坐標點生成,其中將一個Sprite圖片在界面上閃現(xiàn)150ms。爆炸效果需要將圖片insert進第0層,這樣才不至于被其他景物所覆蓋,爆炸結束后layerManager會自動相應調(diào)整。子彈擊中鋼筋時,將只產(chǎn)生爆炸效果。如果子彈沒有擊中物體,游戲將繼續(xù)檢測是否擊中敵方某輛坦克,這時根據(jù)子彈的來源分為兩種情況:(1)當子彈來自玩家時,將首先檢測所有敵方坦克發(fā)出的子彈,當發(fā)生子彈間的碰撞時,玩家的子彈將被移除。敵方坦克的子彈同時也被移除。如果沒有和子彈發(fā)生碰撞,就檢測是否與敵方坦克發(fā)生碰撞,如果是,則將敵方坦克從layerManager中移除,并置為null,產(chǎn)生爆炸效果,敵方坦克數(shù)量減少一個,敵方坦克屏幕上的相應數(shù)量減少一個。(2)如果是來自敵方坦克的子彈,將同樣檢測與玩家子彈的碰撞,及與玩家坦克的碰撞,如有碰撞,玩家生命數(shù)減少一個,位置重置。如果玩家生命已全部死亡,就需要在進行以上操作的同時將玩家坦克的位置放置到屏幕外的部分,因為游戲軟件程序中l(wèi)ayerManager的remove函數(shù)并不會真正將層移除,只是用戶看不見而已,如果不將玩家坦克放置到屏幕外,敵方坦克仍會被阻擋,子彈仍會再次擊中玩家坦克。為了能控制一輛坦克在同一時間只能發(fā)射一發(fā)子彈,在子彈生命運行結束時,將調(diào)用userSprite.enableShoot()恢復坦克繼續(xù)發(fā)炮的能力。因為在發(fā)炮期間,坦克的再次發(fā)炮的功能是被鎖定的。在戰(zhàn)斗類游戲軟件中常用的碰撞檢測方式有像數(shù)級的碰撞檢測和矩形碰撞檢測,由于子彈的圖片形狀不規(guī)則,在手機坦克大戰(zhàn)游戲軟件中采用像數(shù)級的碰撞檢測。如果使用矩形碰撞檢測,將有可能在子彈尚未接觸到物體時就已返回碰撞的真值。4方作戰(zhàn)對象模塊本文基于J2ME架構開發(fā)一款手機坦克大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)辦公耗材節(jié)能環(huán)保采購合同
- 2025年度終止合伙合同:文化娛樂產(chǎn)業(yè)合作終止協(xié)議書
- 二零二五年度科技創(chuàng)新貸款委托支付合同
- 二零二五年度林業(yè)工程項目樹木砍伐作業(yè)合同
- 二零二五年度商標注冊責任免除合同免責任協(xié)議書
- 二零二五年度湖南省事業(yè)單位勞動合同簽訂與勞動爭議調(diào)解合同
- 二零二五年度機場航站樓清潔服務合同(含旅客通道)
- 六一兒童節(jié)策劃活動方案
- 醫(yī)藥公司消防安全培訓
- 《我是小小安全員》
- 銀行客戶經(jīng)理個人履職總結銀行客戶經(jīng)理個人工作總結
- 人教版七年級數(shù)學下冊計算類專項訓練卷【含答案】
- 化學元素周期表口訣化學元素周期表口訣
- 詩詞接龍(飛花令)PPT
- 子宮內(nèi)膜癌(課堂PPT)
- 澳大利亞公司法1-30
- 海上試油測試技術0327
- 中國地圖標準版(可編輯顏色)
- 瑪氏銷售常用術語中英對照
- 上海牛津版三年級英語3B期末試卷及答案(共5頁)
- 行為疼痛量表BPS
評論
0/150
提交評論