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

正文內(nèi)容

基于java的坦克大戰(zhàn)游戲開發(fā)論文-文庫吧

2024-11-11 23:26 本頁面


【正文】 易被掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。 6) 簡單性 Java 刪除了許多極少被使用、不容易理解和容易令人混淆的 C++功能。剔除的功能主要包括運算符重載、多重繼承以及廣泛的自動強迫同型。與 C++相比, Java 語言也提供重載函數(shù),不過它 重載的對象是函數(shù)而非變量或是運算符。 Java 還增加了自動內(nèi)存收集功能,從而簡化了 Java 程序的工作,不過同時也讓系統(tǒng)變得稍微復雜了一些。 Java 的目標之一是要協(xié)助開發(fā)能獨立地在小型機器上順利執(zhí)行的軟件。Java 的基本解釋器和對象類支持約占 40KB 空間,而若增加基本的標準程序庫和線程支持則需增加約 175KB。體積小對于在嵌入式系統(tǒng)中的使用是很重要的,正因為這樣, Java 才能夠通過網(wǎng)絡輕易下載。 7) 中立性 Java 的設計目標是要支持網(wǎng)絡應用程序。一般而言,網(wǎng)絡是由許多不同的平臺系統(tǒng)構(gòu)成,包括各種 CPU 與操 作系統(tǒng)結(jié)構(gòu)。為了讓 Java 應用程序能夠在網(wǎng)絡上任何地方執(zhí)行,其編譯器將會生成一種具備結(jié)構(gòu)中立性的目標文件格式。編譯后的程序碼可以在提供 Java 運行系統(tǒng)的多種不同處理器上面執(zhí)行。Java 的這種中立性結(jié)構(gòu)不僅對網(wǎng)絡應用很有幫助,而且也很適合單一的系統(tǒng)軟件流通。 Java 編譯器是通過生成與某一特定電腦結(jié)構(gòu)無關(guān)的字節(jié)代碼指令,以達到上述功能的。這些字節(jié)代碼指令能很容易在任何機器上解釋執(zhí)行。 結(jié)構(gòu)中立性是確保程序可移植的最重要部份,不過除此之外還需很多必須南京工程學院畢業(yè)設計說明書(論文) 4 配合的條件和 C 與 C++不同的是, Java 規(guī)范中并無任何與機器結(jié) 構(gòu)相依存的陳述存在。它指定了基本數(shù)據(jù)類型的大小,及其算術(shù)運算元的執(zhí)行行為。例如:“ int”代表一個有符號的二進制補碼 32Bit 整數(shù),而“ float”代表一個32BitIEEE754 浮點數(shù)。這些選擇在今天的環(huán)境很適用,因為幾乎所有 CPU 都具備這些特性。 程序運行庫屬于系統(tǒng)的一部份,它定義了一些可移植的程序接口。例如,它包括一個抽象的 Windows類,并且提供了該類在 Unix、 Windows 和 Macintosh平臺上的 實現(xiàn)。 8) 解釋執(zhí)行性 Java 解決器可以直接在任何已移植該解釋器的機器上解釋、執(zhí)行 Java 字節(jié)代碼。再者,由于其鏈接過程比較傾向于逐步增量與輕量過程,因此程序開發(fā)更快、更精密。 9) 高效能性 雖然解決過的字節(jié)代碼性能已相當不錯,不過有些情形下還是要求程序達到更高執(zhí)行效能。字節(jié)代碼可以動態(tài)地解釋為執(zhí)行應用程序特定 CPU 的機器碼。這對于習慣使用一般編譯器與動態(tài)載人器的程序設計者而言,有點類似將最終的機器碼生成器放到動態(tài)載入器之內(nèi)。 字節(jié)代碼格式在設計上即已考慮了機器碼的產(chǎn)生,因此實際的機器碼生成程序相當簡單。其生成的機器碼是有效的,編譯器自動分配寄存器,而在生成字節(jié)代碼期間也會進行一些優(yōu)化。 我們以解 決碼在一臺 Sun Microsystem SPARC Station10 上執(zhí)行時,達到每秒三十萬個函數(shù)調(diào)用速率。字節(jié)代碼轉(zhuǎn)換至機器碼的速度性能,幾乎和直接生成機器目標代碼的 C 或 C++沒有什么兩樣。 10) 多線程性 Java 擁有一組復雜的同步化基本單元,它們是以廣泛使用的 監(jiān)視器與條件變量圖為基礎的。將這些概念融合到語言中之后,它們就變得更容易使用且更為健壯。這種融合方式大部分來自 Xerox 的 Cedar/Mesa 系統(tǒng)。 多線程所帶來的其它好處包括更好的交互式回應能力與實時運行能力。然而這會 受到底層平臺的限制:獨立執(zhí)行的 Java 運行環(huán)境有著很好的實時執(zhí)行能力,而若在其他系統(tǒng)例如 Unix、 Windows、 Macintosh 或 WindowsNT 等平南京工程學院畢業(yè)設計說明書(論文) 5 臺上執(zhí)行時,則會由于底層平臺的原因而使實時響應能力受到影響。 11) 動態(tài)特性 就各方面而言, Java 是一種比 C 或 C++更具動態(tài)特性的語言。它在設計上強調(diào)為不斷發(fā)展的運算環(huán)境提供支持。 Java 能了解由 Objective C 引用過來的接口概念。簡單地說,接口就是規(guī)范一組與對象相對應的成員函數(shù),但對象如何實現(xiàn)這些成員函數(shù)則亟待解決。一個類實現(xiàn)一個接口是要提供 這個接口所包含的所有成員函數(shù)的實現(xiàn),與此相反,派生子類則從父類繼承了一組成員函數(shù)以及它們的實現(xiàn)。一個 Java 類可以實行多個接口,但只能從一個父類繼承。接口告訴連接對象它可以做什么而不是怎么做,使得它在代碼上更具有靈活性和可復用性。在 C 或 C++程序中,如果你有一個指針指向一個對象,但你不知道該對象的類型是什么,那么你將沒有辦法找出它。然而,在 Java 中根據(jù)運行類型信息進行查找是很直截了當?shù)模驗樵诰幾g階段和運行階段都會檢查數(shù)據(jù)類型轉(zhuǎn)換。所以你在 Java 中完全可以信任這種轉(zhuǎn)換,而 C 與 C++的編譯器則只是相信你自 己已做了正確的處理。 12) 有關(guān)繪圖的一些技術(shù) Graphics 類提供了簡單的 2D 繪圖功能。它具有 24 位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。程序只能在 paint()函數(shù)中使用Graphics 繪制, GameCanvas 可調(diào)用 getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。其對象會被傳給 Canvas 的 paint()函數(shù),以便最終顯示。 在沒有 前,進行游戲繪圖一般需要手動編程使用雙緩沖。需要在 paint()方法內(nèi)所想要畫的圖形畫在一張預先準備好的背 景,等所有繪圖操作都完成后再將背景的數(shù)據(jù)拷貝到實際的屏幕上。 Image 類提供了一個建立背景的靜態(tài)方法 createImage(int width, int height),再利用 getGraphics()方法取得屬于這個背景的 Graphics 對象,所進行的繪圖操作都會作用在背景上,等到全部的繪圖操作完成后,再調(diào)用 drawImage()方法將背景的數(shù)據(jù)復制到實際顯示的屏幕上。 這樣的技術(shù)在繪制動畫時特別有用。繪制動畫時經(jīng)常需要不斷地更新畫面,而更新畫面的操作就是先將屏幕以 fillRect()的方式清除,再將下一 張圖片畫在屏幕上,然而反復的清除及重繪會造成屏幕的閃爍現(xiàn)象( flicker),因此南京工程學院畢業(yè)設計說明書(論文) 6 使用雙重緩沖的好處就是在背景進行這個清除及重繪的操作,再將完成的繪圖拷貝到屏幕上,由于用戶看不到清除的操作,因此就不會出現(xiàn)閃爍的現(xiàn)象了。不過在某些 MIDP 的實現(xiàn)上已經(jīng)加上了雙重緩沖的支持,因此在處理前應先利用 Canvas 類的 isDoubleBuffer()方法來判斷。 關(guān)于 Eclipse Eclipse 最初是由 IBM 公司開發(fā)的替代商業(yè) 軟件 Visual Age for Java 的下一代 IDE 開發(fā)環(huán)境, 2020 年 11月貢獻給開源社區(qū),現(xiàn)在它由非營利軟件供應商聯(lián)盟 Eclipse 基金會( Eclipse Foundation)管理。 2020年, Eclipse 選擇 OSGi 服務平臺規(guī)范為運行時架構(gòu)。 2020 年 6 月,穩(wěn)定版 發(fā)布。 2020年 6 月發(fā)布代號為 Ganymede 的 版。 2020年 7 月發(fā)布代號為 GALILEO 的 版。 2020 年 6 月發(fā)布代號為 Helios 的 版。 Eclipse 是著 名的跨平臺的自由 集成開發(fā)環(huán)境 ( IDE)。最初主要用來 Java語言 開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如 C++和Python 的開發(fā)工具。 Eclipse 的本身只是一個框架平臺,但是眾多插件的支持使得 Eclipse 擁有其他功能相對固定的 IDE 軟件很難具有的靈活性。許多軟件開發(fā)商以 Eclipse 為框架開發(fā)自己的 IDE。 Eclipse 最初由 OTI 和 IBM 兩家公司的 IDE 產(chǎn)品開發(fā)組創(chuàng)建,起始于 1999 年4 月。 IBM 提供了最初的 Eclipse 代碼基礎,包括 Platform、 JDT 和 PDE。目前由 IBM牽頭,圍繞著 Eclipse 項目已經(jīng)發(fā)展成為了一個龐大的 Eclipse 聯(lián)盟,有 150 多家軟件公司參與到 Eclipse 項目中,其中包括 Borland、 Rational Software、 Red Hat 及 Sybase 等。 Eclipse 是一個開發(fā)源碼項 目,它其實是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括 Oracle 在內(nèi)的許多大公司也紛紛加入了該項目,并宣稱 Eclipse 將來能成為可進行任何語言開發(fā)的 IDE集大成者,使用者只需下載各種語言的插件即可。 雖然大多數(shù)用戶很樂于將 Eclipse 當作 Java IDE 來使用,但 Eclipse 的目標不僅限于此。 Eclipse 還包括插 件開發(fā)環(huán)境( Plugin Development Environment, PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的南京工程學院畢業(yè)設計說明書(論文) 7 每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。 基于 Eclipse 的 應用程序 的突出例子是 IBM 的WebSphereStudioWorkbench,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎。例如,WebSphere Studio Application Developer 添加了對 JSP、 servlet、 EJB、XML、 Web 服務和 數(shù)據(jù)庫 訪問的支持。 Eclipse 是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能 的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由 Eclipse 項目、Eclipse 工具項目和 Eclipse 技術(shù)項目三個項目組成,具體包括四個部分組成—— Eclipse Platform、 JDT、 CDT 和 PDE。 JDT 支持 Java 開發(fā)、 CDT 支持 C開發(fā)、 PDE 用來支持插件開發(fā), Eclipse Platform 則是一個開放的可擴展 IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成 軟 件開發(fā)工具 的基礎。 Eclipse Platform 允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。 Eclipse SDK(軟件開發(fā)者包)是 Eclipse Platform、 JDT 和 PDE 所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到 Eclipse Platform 中的工具。 Eclipse SDK 由 Eclipse 項目生產(chǎn)的工具和來自其它開放源代碼的 第三方軟件 組合而成。 Eclipse 項目生產(chǎn)的軟件以 GPL 發(fā)布,第三方組件有各自自身的許可協(xié)議。 南京工程學院畢業(yè)設計說明書(論文) 8 第二章 軟件 需求分析 可行性分析 1).游戲程序是一項精度要求很高的程序系統(tǒng) ,因為其代碼利用率很高。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、健盤事件都會以極高的頻率在后臺等待循環(huán)。因此,其邏輯設計應當相當嚴謹,需將所有可能發(fā)生的事件各意外情考慮在設計中。 2).游戲中為了美觀,適用性強,可能需要采用外部文件引入的圖片貼圖,屏幕刷新的雙緩沖等都有較好的解決方案。 3).我方的坦克的運行可以通過鍵盤響應事件控制,但敵方則因為是自動運行,就需要有一定的智能性;同時,出現(xiàn)在屏幕上的敵方可能性會有較多的數(shù)量,這需要為每個敵方開辟一個線程以便能讓其獨立運行。 Java 的多線程能力為實現(xiàn)這樣的游戲提供了可能。 4).對于雙方坦克發(fā)出的子彈的控制也需要對其跟蹤控制,子彈也需要處在獨立的線程中。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。這需要對所有的 對象有較好的控制。另外,子彈在運行過程中也需要實時掃描是否碰撞到了相關(guān)障礙物或屏幕邊界。如此過多的線程同時在本來效率就不高的機器上運行,也許會導致程序的緩慢。 5).雙方坦克在前進時也考慮到是否碰撞到相關(guān)物體或?qū)Ψ教箍?,以免重疊運行,造成許多物理上不可能的情況,缺乏真實感。 6).是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導致運行的不流暢。開發(fā)過程中要對結(jié)構(gòu)的控制、注意變量的使用。 游戲規(guī)則和系統(tǒng)功能介紹 游戲中坦克能向八個方向移動 ,和友方坦克碰到后不能穿越。坦克能向八個方向發(fā)射子彈,子彈擊中坦克產(chǎn)生爆炸,玩家坦克還能發(fā)射同時向八個方向發(fā)射集束炸彈。地圖上有障礙物,坦克和子彈都不能穿越障礙物。玩家坦克有生命數(shù),還有生命值,被敵人子彈擊中后生命值減少,生命值為0后坦克爆炸,開始新坦克的操作按F 2。地圖上有隨機出現(xiàn)的加生命值的血塊,吃恢復生命值滿,游戲的目的是
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1