官术网_书友最值得收藏!

4.1 項目開發技術背景

20世紀以來,信息技術發生了翻天覆地的變化,似乎到處都有炫彩繽紛的游戲畫面,市面上出現了各種各樣的游戲,如網頁游戲、網絡游戲、單機游戲,無形中也產生了各種各樣的網絡游戲公司。不僅如此,它還促使大量的公司開始向游戲開發方面發展。可想而知,游戲已經成為我們生活的一部分。《坦克大戰》游戲是我們童年經常玩的游戲,也是最經典的一款小霸王單機游戲之一。起初,《坦克大戰》(Battle City)游戲是1985年日本南夢宮Namco游戲公司推出的一款多方位平面射擊游戲。該游戲以坦克戰斗及保衛基地為主題,屬于策略型聯機類。同時,它也是FC平臺上少有的內置關卡編輯器的幾款游戲之一,玩家可以自己創建獨特的關卡,并通過獲取一些道具使坦克和基地得到強化。隨著信息技術的快速發展,各種版本的坦克大戰游戲相繼出現。

該版本的《坦克大戰》游戲是基于Java語言設計開發的,具有比較好的經典游戲界面和人工智能特征,與傳統的小霸王單機坦克大戰游戲有異曲同工之處,而支持無限復活又可以讓玩家更好地體會游戲的樂趣。

完成這個項目的主要目的是讓開發者盡可能全面地掌握Java的基礎知識。在整個坦克大戰游戲的開發過程中將涉及Java基礎知識的大部分內容,這對Java知識鞏固有很好的幫助作用。

4.1.1 開發目的和意義

坦克大戰游戲是一款非常經典的單機游戲,因為它比較簡單、有趣,無論老少都比較適合操控。坦克大戰游戲的設計對每一個Java語言學習者來說,在語言提高和進階方面都是很好的鍛煉機會。

坦克大戰游戲的設計比較復雜,它涉及面廣、牽涉方面多,如果不好好考慮和設計,將難以成功開發出這個游戲。在游戲的設計中,牽涉到圖形界面的顯示與更新、數據的收集與更新,并且在游戲的開發中,還要應用類的繼承機制及一些設計模式。因此,設計和開發好坦克大戰游戲,對提高Java開發者的開發水平和系統的設計能力有極大的幫助。在設計開發過程中,需要處理好各個類之間方法的調用,還要處理各個類相應的封裝,并且要協調好各個模塊之間的邏輯依賴關系。

正是因為如此,本次項目開發的目的在于學習Java程序設計基本技術,學習用Eclipse開發Java程序的相關技術,熟悉坦克大戰游戲的需求,熟悉項目開發的完整過程。例如,學會怎樣進行一個項目的需求分析、概要設計、詳細設計等軟件開發過程,培養初步的項目分析能力和程序設計能力。

4.1.2 系統可行性分析

本游戲是通過將Java及相關函數之間的邏輯關系、數據結構等知識綜合起來設計而成的一款初具規模的坦克大戰游戲。在對游戲特效的原理內容進行充分調研基礎上,我們來介紹本款小型游戲的設計過程,其中涉及常量和枚舉在小型游戲設計中的作用、復雜條件語句在小型游戲中的作用、隨機函數在小型游戲中的應用、游戲中狀態的概念和切換方法、游戲中速度的實現方法、覆蓋和碰撞問題的實現方法、使用API函數實現簡單的游戲圖像顯示和輸入的處理、彈藥爆炸的過程等。

可行性分析研究的目的就是以最小的代價,在盡可能短的時間內確定問題是否能解決。我們具體從以下3個方面考慮本游戲的可行性。

1.技術可行性

Java是一種可開發跨平臺應用軟件、面向對象的程序設計語言,是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和Java平臺(即Java EE、Java ME、Java SE)的總稱。Java自面世后就非常流行,并發展迅速,對C++語言形成了有力沖擊。Java不同于一般的編譯執行計算機語言和解釋執行計算機語言。它先將源代碼編譯成二進制字節碼,然后依賴各種平臺上的虛擬機解釋執行字節碼,從而實現了“一次編譯、到處執行”的跨平臺特性。Java技術具有卓越的通用性、高效性、平臺移植性和安全性,被廣泛應用于個人PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網。同時,在擁有全球最大的開發者專業社群、在全球云計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。

Java語言經歷了誕生、成長、成熟、壯大這幾個階段,逐漸發展成為IT領域里的主流計算模式。使用Java開發工具方便,容易實現。Java對開發跨平臺性質的產品有著其獨特的優勢,游戲也是其開發產品之一。

本系統開發過程是通過將Java編程語言與Eclipse集成開發環境配合使用來實現的。在該項目中主要引用的類包有AWT、IO、Swing、Util、Applet等。

2.經濟可行性

本游戲的開發是基于JDK 7.0和Eclipse,因為它們都是免費且開源的軟件,所以實現本設計的成本就有所降低。隨著計算機、網絡通信和信息技術的迅猛發展及人們精神生活品質的提高,國際、國內各種各樣的大型綜合游戲網站如雨后春筍般地發展起來。一款好的游戲帶來的經濟效益可以說是不可估量的,例如網上流行的英雄聯盟、坦克世界等真人型網絡版游戲。對于游戲的編寫來說,更多的人傾向于采用Java語言來實現,這是因為Java具有卓越的通用性、高效性、平臺移植性和安全性。更重要的是Java的跨平臺性,決定了游戲開發者只需要少量的時間就可以開發出一款可在不同平臺上運行的游戲,而不是像其他編程語言那樣受限。如果想讓游戲在不同的系統中運行,開發者必須在不同的系統上進行編碼和開發,這樣會使開發時間和開發該游戲所需資金的消耗量更多。因此,對于游戲開發者來說,Java的可操作性和性價比更高。

3.操作可行性

本Java版坦克大戰游戲是一個單機版的游戲程序,它只是模擬實現了網絡上一些單機坦克大戰游戲的基礎功能,如坦克的移動、坦克的射擊、坦克的復活,以及每個關卡地圖的設計。本版本坦克大戰游戲和傳統坦克大戰游戲的操作相類似,所以對于玩家來說,它的操作簡易,更容易讓玩家上手,玩家不需要了解內部流程,只需執行與一般其他的單機游戲一樣的操作即可開始游戲。數據的存放采用集合技術,所以本設計無須數據庫的連接。整個系統形成主要由JDK 7.0虛擬環境和Eclipse共同完成,無須更多復雜的工具和服務器支持。

4.1.3 需求和技術分析

如今的游戲已經成為世界上最大的娛樂、休閑項目之一,游戲市場規模持續增長、潛力巨大。我國政府一直以來都特別鼓勵游戲產業的發展,特別是我國本土的游戲產業,扶持力度連年加大。由此可見,我國對游戲產業的重視程度。該坦克大戰游戲是對紅白機經典90坦克大戰游戲的延續。對于80后和90后來說,它們都是童年里最寶貴的回憶。80后和90后占據著當今游戲人群的主體地位,對于他們來說,該坦克大戰游戲不僅可以減輕人們的社會壓力、放松身心,還可以回味小時候玩紅白機游戲的瘋狂時光,又不會沉迷于游戲,甚至可以更好地體驗游戲的樂趣。

該程序代碼有著很高的運用率,因此設計時必須要有相當縝密的邏輯條理思維,還要考慮一些無法操控的因素和所有可能出現的突發事件。

(1)玩家能夠通過敲擊游戲按鍵來操縱玩家坦克的動作,但對于敵方坦克來說,就要有一定的自主性和智能型,因為其是自動運行的。同時,需要為屏幕上的敵方坦克開創一個線程,讓其自主運行來應對數量過多而導致的混亂。要精密設置敵方坦克的操作運行算法,不要使游戲太過單一。

(2)要對所有坦克打出的彈藥進行實時監測并判斷它打到了什么物體對象,因此需要開辟一個獨立的線程來處理彈藥,還需要控制好所有的物體對象。同一時刻,在JVM虛擬機上保持運行這么多的線程,可能會造成程序的遲鈍,甚至癱瘓。

(3)游戲界面中物體對象繁多,為了避免重疊運行,玩家坦克在前進時需要時刻地掃描周圍環境。

(4)游戲的動態界面是一款優秀程序不可缺少的組成成分,精美的用戶界面是引起玩家興趣的關鍵,相關的構圖美化技術也需要有所考慮。

(5)在游戲地圖中會有許多物體對象,這不是繪圖方法能夠解決的,而且過多的大型圖片會束縛程序的大小,所以要準確掌握Graphcis()方法的使用。同時使用讀取外部文件的方法來加載游戲關卡,因為內存有限,不適合用于存儲地圖關卡。

(6)游戲要對玩家的分數進行記錄,這就需要對其功能和屬性進行妥善的策劃,還需要制作良好的解決方案來處理其存儲方式。

(7)為了確保游戲程序的運行順暢,我們需要對結構進行嚴格把控,將算法完善得更精準,還可以運用混淆器對打包后的軟件程序進行優化。

4.1.4 功能分析

該坦克大戰游戲選擇使用以往的游戲規則。在服務器端創建并設置一個主機,客戶端申請連接加入,若其IP輸入判斷無誤,載入地圖關卡并開始游戲。在游戲界面中,會實時顯示敵方坦克數量和玩家坦克的生命數量及分數。敵方坦克自行移動和打出彈藥,玩家通過敲擊鍵盤來操控自己坦克的動作并打出彈藥,彈藥無法打中相同陣營的坦克,當兩方陣營的彈藥相交時會相互抵消,打中對方坦克時會產生爆炸效果,中途可以暫停、發送信息,玩家坦克銷毀掉超級武器后會賦予其特殊的功能,在游戲地圖界面中還同時包含通信功能。如果取得了勝利,會顯示“你過關了!”的消息提示;如果失敗了,系統則給出“GAME OEVR!還想再玩一次嗎?(y/n)”的提示,若玩家雙方都選擇可繼續游戲,則游戲重新加載并開始,否則結束并退出游戲界面。

主站蜘蛛池模板: 仲巴县| 确山县| 彭泽县| 澄城县| 南平市| 马关县| 鄂尔多斯市| 大田县| 宽城| 阜南县| 平安县| 漳浦县| 响水县| 昌邑市| 湖北省| 阜宁县| 栾城县| 连州市| 常山县| 淮南市| 杭锦旗| 新龙县| 平安县| 卫辉市| 宁德市| 温州市| 海门市| 涞源县| 宣化县| 普格县| 灵丘县| 彝良县| 石家庄市| 乌兰察布市| 新闻| 洛浦县| 花垣县| 汾西县| 乌审旗| 清远市| 酒泉市|