freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于j2me的java游戲--坦克大戰(zhàn)的開發(fā)(編輯修改稿)

2025-06-10 20:27 本頁面
 

【文章內(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ò)平臺上,提供了用 HTTP 和 FTP 協(xié)議傳送和接收信息的庫函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。 5. 健壯性 Java 致力與檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,并自動回收內(nèi)存,減少了內(nèi)存出錯(cuò)的可能性。 Java 取消了 C語言的結(jié)構(gòu)、指針、 define 語句、多重繼承、goto 語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。 關(guān)于 JBuilder9 JBuilder 是目前最好的 Java 開發(fā)工具之一,在協(xié)同管理、對 J2EE 和 XML的支持等方面均走在其他產(chǎn)品的前面。 JBuilder 是遵循 Sun 公司 J2EE 標(biāo)準(zhǔn)的可視化集成開發(fā)工具。 Jbuilder 是一種處于市場領(lǐng)先地位的跨平臺環(huán)境, 主要用于構(gòu)建具有行業(yè)實(shí)力的企業(yè) Java 應(yīng)用程序。 JBuilder 集成了 Borland 公司開發(fā)工具系列的優(yōu)秀特性,使得使用過 C++Builder,Delphi 的程序員很容易的過度到上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 7 JBuilder 的開發(fā)環(huán)境當(dāng)中。 由于 Java 技術(shù)的發(fā)展迅速,經(jīng)常有新的組件推出或新的錯(cuò)誤修正,致使 JBuilder 的版本升級很快。當(dāng)兩年前還是 JBuilder6 時(shí),現(xiàn)今已推出了 10 的版本。 關(guān)于 Wireless Tool Kit WTK(Wireless Tool Kit)是 Sun 公司針對 J2ME 推出的用 于手機(jī)和 Palm 等移動設(shè)備的開發(fā)包,是除手機(jī)廠商的專用開發(fā)包外唯一的手機(jī)模擬器開發(fā)包。它通用性高,開發(fā)出的應(yīng)用程序可保證能運(yùn)行在大部分設(shè)備上,而不像專用廠商具有一定的不兼容性。 雖然它沒有強(qiáng)大的功能和完善的調(diào)試手段,但它提供運(yùn)行模擬器的最基本組件 ,是其他 IDE 需集成采用的 必備元素。 Java Appication Manager 手機(jī)中負(fù)責(zé)調(diào)配程序運(yùn)行資源的管理后臺是 Java Application Manager。它 所使用的 傳輸媒體 可以是 紅外線 、 網(wǎng)絡(luò)、以及其他可用來傳輸 的 媒體 。 Java Application Manager 會 從網(wǎng)絡(luò) 上 下載 代表 該 Application Suite 的 JAR 檔 ,接 著 在手 機(jī) 上安裝此 MIDlet Suite, 然后 在手 機(jī)開 始 執(zhí)行該應(yīng)用程序 。整 個(gè)詳細(xì) 的 運(yùn)作 流程如 圖 21 所示 。 本章小結(jié) : 第二章介紹了 Java 語言的特點(diǎn)、本程序的開發(fā)環(huán)境及其相關(guān)工具的原理和使用。 存儲 媒體 手機(jī) 內(nèi)建瀏覽器 Java Appication Manager KVM 描述檔 圖示檔 JAR 檔 Java Servlet HTML 網(wǎng)頁 6.安裝應(yīng)用程序 8.載入并執(zhí)行應(yīng)用程序 使用者手機(jī) 網(wǎng)站 網(wǎng)絡(luò) 1.瀏覽網(wǎng)頁 JAR 檔 圖 21 JAM 工作流程圖 上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 8 第三章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 本程序需解決的有關(guān)技術(shù)問題 1. 游戲程序是一項(xiàng)精度要求很高的程序系統(tǒng),因?yàn)槠浯a利用率很高 。一個(gè)實(shí)時(shí)運(yùn)行的 最終作品,每秒都會運(yùn)行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。 因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計(jì)中。 2. 游戲中為了美觀,適用性強(qiáng),可能需要采用外部文件引入的圖片貼圖,有關(guān)貼圖,在 中提供了用于增強(qiáng)游戲功能的 game 包,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。 3. 己方坦克的運(yùn)行可以通過鍵盤響應(yīng)事件控制,但敵 方則因?yàn)槭亲詣舆\(yùn)行,就需要有一定其一定的智能性;同時(shí),出現(xiàn)在屏幕上的敵方可能會有較多的數(shù)量,這需要為每個(gè)敵方開辟一個(gè)線程以便能讓其獨(dú)立運(yùn)行。 Java 的多線程能力為實(shí)現(xiàn)這樣的游戲提供了可能。 敵人坦克的運(yùn)行算法也需要進(jìn)行適當(dāng)?shù)脑O(shè)置,以免游戲過于簡單,單調(diào)。 4. 對于雙方坦克發(fā)出的子彈的控制也需要 對其跟蹤控制,子彈也需要處在獨(dú)立的線程中。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。這需要對所有的對象有較好的控制。 另外,子彈在運(yùn)行過程中也需要實(shí)時(shí)掃描是否碰撞到了相關(guān)障礙物或屏幕邊界。如 此過多的線程同時(shí)在本來效率就不高的 KVM 虛擬機(jī)上運(yùn)行,也許會導(dǎo)致程序的緩慢。 5. 雙方的坦克在前進(jìn)時(shí)也需要考慮到是否碰撞到相關(guān)物體或?qū)Ψ教箍耍悦庵丿B運(yùn)行,造成許多物理上不可能的情況,缺乏真實(shí)感。每一次刷新頁面、每前進(jìn)一步都需要將所有的周圍環(huán)境都進(jìn)行掃描。 6. 游戲的結(jié)束、開始、動態(tài)信息畫面作為構(gòu)成一個(gè)完美程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖也需要有一定的考慮。 7. 游戲的地圖不可能通過繪圖來解決。否則,不僅難于控制和處理過多的元素,也會因過多的大型圖片 而不能限制程序的大小,失去手機(jī)上程序的原則和Java 的優(yōu)勢。 同時(shí),地圖關(guān)卡不宜保存在手機(jī)有限的內(nèi)存中,而最好采取外部文件的讀入讀出方法。 8. 用戶運(yùn)行游戲時(shí)需要有分?jǐn)?shù)記錄的可能。如何采用合理的記分標(biāo)準(zhǔn),需要進(jìn)行適當(dāng)?shù)脑O(shè)計(jì)。記錄分?jǐn)?shù)的存儲方式也需要有較好的解決方案。手機(jī)中由于處理器和內(nèi)存空間、存儲空間都十分有限,其數(shù)據(jù)庫系統(tǒng)與普通 PC 大相徑庭。其數(shù)據(jù)庫結(jié)構(gòu)較為簡單,被稱之為 RMS 系統(tǒng)。 9. Java 是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 9 后的程序會低很多,程序如果不進(jìn)行精簡和優(yōu)化, 將可能導(dǎo)致運(yùn)行的不流暢。除開發(fā)過程中對結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器 (Obfuscator)進(jìn)行程序打包后的優(yōu)化。 以上相關(guān)技術(shù)細(xì)節(jié)和整體流程將分別在以下小節(jié)闡述。 程序流程 MIDlet suite 是 MIDP 應(yīng)用程序的最小單位, JAM 負(fù)責(zé)將手機(jī)內(nèi)的 MIDlet suite 以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的 MIDlet suite,一旦選取了某個(gè) MIDlet suite,操作系統(tǒng)就會激活 KVM 執(zhí)行里面的 MIDlet。 MIDlet 及相關(guān)的支持類組成了 MIDP應(yīng)用程序的實(shí)際內(nèi)容。 每個(gè) MIDlet 都必須繼承 這個(gè)抽象類。在 MIDP 規(guī)格中定義了 MIDlet 的生命周期,以及可以存在的三種狀態(tài),包括Paused、 Active 以及 Destroyed,每一個(gè) MIDlet 在任何時(shí)刻只可能處于其中的一個(gè)狀態(tài)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示: 本程序采用面向?qū)ο蟮脑O(shè)計(jì)模式,對游戲中的所有物體賦予對象的概念和屬性。 運(yùn)行程序后允許用戶選擇執(zhí)行選項(xiàng)菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進(jìn)行繪圖。在 主程序運(yùn)行的線程中,畫面刷新將以一定的頻率采用雙緩沖技術(shù) 對屏幕重繪,實(shí)時(shí)反映整個(gè)游戲的進(jìn)行狀態(tài)。用戶控制的坦克運(yùn)行在主線程中,隨屏幕刷新的頻率而步進(jìn)。敵方坦克將在游戲開始時(shí)逐漸新增線程,每增加一個(gè)敵方對象就新增加一條線程,一旦線程數(shù)滿到最大值(本程序暫設(shè)置為 6),就不允許敵人再繼續(xù)出現(xiàn)。用戶坦克自誕生之時(shí)起將擁有一發(fā)子彈, 子彈雖然開在單獨(dú)的線程中,但運(yùn)行結(jié)束后(比如撞到相關(guān)物體或敵方坦克時(shí))并不結(jié)束子彈對象,只是將其線程終止。用戶再次發(fā)射子彈 時(shí)只是將終止的線程再次激活。 在屏幕重繪的主程序中,將在每次的循環(huán)中 判斷若干事件 。如:用戶坦克的生命是否已完全用盡,敵方坦克數(shù)是否已經(jīng)為零,屏幕上的消減狀態(tài) (Destroyed) 停止?fàn)?態(tài) (Paused) 運(yùn)行狀態(tài) (Active) StartApp() DestroyApp() 呼叫 MIDlet的構(gòu)造函數(shù) DestroyApp() PauseApp() 圖 31 MIDlet 的流程 上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 10 坦克數(shù)量是否少 于仍剩下的坦克數(shù)量等。以便程序進(jìn)入相關(guān)的分支執(zhí)行相關(guān)的反應(yīng)代碼,結(jié)束游戲或統(tǒng)計(jì)分?jǐn)?shù)等。 主程序流程如圖 32所示: 程序?yàn)樾枰瓿瑟?dú)立功能的需顯示的模塊設(shè)置了單獨(dú)的類。 TankMain 類是繼承自 MIDlet的控制主程序啟動的首先被載入系統(tǒng)的部分。載入程序后首先啟動的是程序介紹的信息畫面。閃過后載入 StartChoice 類,為用戶提供可選擇的選項(xiàng)。在選擇開始后,將運(yùn)行BattleCanvas 類中的總流程控制。它決定 了游戲何時(shí)該結(jié)束,何時(shí)分配敵人數(shù)量, GameOver字樣的閃現(xiàn)規(guī)則,地圖的繪制及整個(gè)游戲的調(diào)度。 圖 33 是程序中類之間的 UML 分析圖。 敵方坦克與用戶坦克的相關(guān)功能和具體行為分別圖 33 與主程序相關(guān)的類的 UML 視圖 Logo 畫面 選項(xiàng)畫面 主程序 屏幕繪圖 本關(guān)記分統(tǒng)計(jì) 顯示GameOver 顯示歷史記分表 About 開始 敵方需要 出坦克時(shí),生成坦克 初始化參數(shù) 死亡時(shí) 符合結(jié)束條件時(shí) 圖 32 本程序的主流程圖 上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 11 定義在 EnemySprite 和 UserSprite 類中,它們都繼承自 TankSprite 公共類,以簡化程序的代碼、理清結(jié)構(gòu)。 在每關(guān)的結(jié)束或死亡后都將載入 ScoreScreen 類,統(tǒng)計(jì)當(dāng)前的分?jǐn)?shù)。如果已死亡或完成所有的關(guān)數(shù),程序?qū)⒂脩羲玫姆謹(jǐn)?shù)記載到 RMS 數(shù)據(jù)庫中,進(jìn)行永久性保存。 載入過程中將對所得分?jǐn)?shù)與以往歷史比較,放置到合適 的位置中,形成排序。 繪圖與 新增的 GameCanvas 包 提供低級繪制的 Canvas 類 為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是 Canvas 抽象類進(jìn)行繪圖。 從程序開發(fā)的觀點(diǎn)看, Canvas 類可與高級 Screen 類交互,程序可在需要時(shí)在 Canvas中摻入高級類的組件。 Canvas 提供了鍵盤事件、指點(diǎn)桿事件(如果設(shè)備支持),并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù) 。鍵盤事件由鍵代碼指定,但這樣控制游 戲會導(dǎo)致缺乏通用性,并不是每個(gè)設(shè)備的鍵盤布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。本程序中,操縱用戶坦克運(yùn)行的按鍵都定義為游戲控制鍵,這樣便能適應(yīng)所有的機(jī)器。 Graphics 類 Graphics 類提供了簡單的 2D 繪圖功能。它具有 24位深度色彩的繪制能力,以三原色分別各占一個(gè)字節(jié)表示其顏色。 程序只能在 paint()函數(shù)中使用Graphics 繪制, GameCanvas 可 調(diào)用 getGraphics()函數(shù) 直接繪制在緩沖區(qū)上,可以在任何時(shí)間請求 傳輸?shù)角芭_。 其對象會被傳給 Canvas 的 paint()函數(shù),以便最終顯示。 PNG 格式 PNG(Portable Network Graphics)格式是 MIDlet 唯一支持的圖象格式, PNG具體格式由 PNG Specification,Version 定義的。 PNG 格式提供透明背景的圖象,這對繪制游戲畫面和被操縱主角極有幫助。坦克之間或與障礙物碰撞時(shí)就不會因?yàn)楸尘坝刑囟ǖ念伾@示出的效果像貼上的圖片而缺乏真實(shí)感,物體之間輕微重疊時(shí)最上層圖片也不會覆蓋超過其有效象素外的部分。 PNG 格式圖片中包含許多定義其圖片特性的冗余部分 (Chunks)。 這些代碼包含在每一個(gè)單獨(dú)的 png 格式圖象中,然而如果將多個(gè) png 圖象合并在一張幅面稍上海交通大學(xué)本科生學(xué)士 學(xué)位論文 基于 J2ME 的 Java 游戲開發(fā) 12 大一些的整圖中,多個(gè) chunks 就可以得到精簡,圖片的大小可以得到控制。使用 Image 類中的 createImage 函數(shù)可從整圖中分割出所需要
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1