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

正文內(nèi)容

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

2025-06-10 20:27 本頁(yè)面
 

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