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

正文內(nèi)容

本科畢業(yè)論文畢業(yè)設(shè)計參考基于java的坦克大戰(zhàn)游戲演示(編輯修改稿)

2025-01-08 21:01 本頁面
 

【文章內(nèi)容簡介】 15 (圖 34) 圖 34 敵人 數(shù)量和開火頻率隨著難度 增加圖 (圖 35) 。 圖 35 使用超級武器 的圖 畢業(yè)設(shè)計(論文) 16 5.玩家坦克具有生命值和能量值,被敵方坦克子彈擊中后會減少生命值,生命值為 0 則損失一條生命。使用超級武器會減少能量值,能量值為 0則不能使用超級武器 (圖 36) 。 圖 36 生命值和能量值接近空值 的圖 9 輛坦克 會出現(xiàn)一輛獎勵坦克,殺死 獎勵坦克可以出現(xiàn)獎 勵, 吃掉獎勵能 增加生命值 /增加能量值 /無敵一段時間 3 種效果之一 (圖 37) 。 圖 37 吃掉獎勵坦克的圖 第 3 章 系統(tǒng)的總體設(shè)計 17 (圖 38)。 即將吃到無敵效果 0時結(jié)束游戲,并顯示游戲結(jié)束界面。 圖 38 游戲結(jié)束界面圖 本章小結(jié) 本章節(jié)主要介紹了本游戲的功能、規(guī)則和整體流程圖。從總 體上把握了解本游戲的設(shè) 計的總體思想和玩的規(guī)則。 隨著 信息技術(shù)的發(fā)展,電子競技也以一種正規(guī)的行業(yè)逐步的走入了人們的生活,特別是對年輕一代,游戲更是娛樂項目中不可缺少的一種,玩游戲是一種娛樂,其實開發(fā)游戲更會使人樂在其中。隨著游戲產(chǎn)業(yè)的迅速發(fā)展,新游戲一個接一個的不斷出現(xiàn) ,其中這種小的坦克大戰(zhàn)游戲深受新一代人的歡迎 。 游戲中的坦克要發(fā)揮各自的威力,也 “ 必先利其器 ” 。對于坦克來講,能最大程度發(fā)揮威力的莫過于坦克的炮彈了,所以《坦克大戰(zhàn)》中加深了這一概念 。 第 4 章 程序分析和具體實現(xiàn) 17 第 4 章 程序分析和具體實現(xiàn) 主游戲邏輯及其涉 及到的若干類 Battle Canvas 主管著所有類之間的協(xié)調(diào),決定何時死亡,何時分配新的敵人,及控制敵人出現(xiàn)處的閃光圖標(biāo)、游戲結(jié)束后的動態(tài) Game over 字樣。它運行在獨立的線程中,以恒定的頻率刷新畫面。刷新速度需大于 30/秒才能使畫面顯示因人眼的暫時停留效應(yīng)流暢運行。 本程序設(shè)置為 20 毫秒。其主邏輯。其他,如 Sprite 類的 game over 字樣、記分統(tǒng)計畫面也都需在此主邏輯中建立相應(yīng)對象。還需保存的變量有,游戲開始時間、結(jié)束時間(用于統(tǒng)計分?jǐn)?shù))、敵人的總數(shù)、屏幕上敵人的數(shù)量、下一個敵人需要出現(xiàn)的位 置(總共允許在三個不同的位置出現(xiàn),分別位于屏幕的左、中、右方) , 游戲是否已成功結(jié)束或是否已死亡。 由于敵人將依次出現(xiàn)在屏幕上,同時出現(xiàn)的數(shù)量應(yīng)當(dāng)受控制。所以在構(gòu)造函數(shù)中,也應(yīng)當(dāng)分配對象的內(nèi)存空間。構(gòu)造坦克時,將把坦克的圖片傳給Battle Canvas 中創(chuàng)建坦克僅調(diào) create Enemy()實現(xiàn)。 在構(gòu)造函數(shù)自己調(diào)用了線程的 start 后,程序?qū)㈤_始循環(huán)運行,直至跳出 while 的循環(huán)。每次循環(huán)中將檢測是否死亡,屏幕上坦克的數(shù)量,是否該過關(guān)統(tǒng)計分?jǐn)?shù) 當(dāng)敵人坦克完全死亡時 (enemy Num 為 0),需調(diào)用 System 類賦值給結(jié)果的時間。接著調(diào)用顯示統(tǒng)計分?jǐn)?shù)的畫面,為了進(jìn)入下一關(guān),統(tǒng)計畫面只是停留四秒,就重新轉(zhuǎn)回畫面。 當(dāng)然,如果當(dāng)前已是最后一關(guān),就不會再轉(zhuǎn)回。進(jìn)入下一關(guān)時,許多變量需要重新被初始化,如地圖的繪制、敵人出現(xiàn)位置的重置、敵人的數(shù)量、玩家坦克的當(dāng)前位置。 如果游戲未結(jié)束,則需判斷屏上坦克是否已小于還剩坦克的總數(shù),如果是這樣,就需要再提供一輛坦克。提供新坦克之前,在屏幕上設(shè)置了一個專用指示的閃光符號,運行在單獨的線程中。以在兩秒鐘內(nèi)反復(fù)閃現(xiàn)兩次為一個生命周期。當(dāng)它閃光完畢后,敵人就會從閃光位置 出現(xiàn) 。 這樣 可提示玩家具體敵人將在什么時刻出現(xiàn),以便做好準(zhǔn)備。閃光位置畢業(yè)設(shè)計(論文) 18 設(shè)置了三處坐標(biāo),由于敵人不能同時出現(xiàn),便設(shè)置了的倒數(shù)計時,每次屏幕刷新會減少一次計數(shù),直到為 0 時就準(zhǔn)備一輛坦克。 在檢測用戶輸入的 input()函數(shù)中,當(dāng)按方向鍵時,玩家坦克就將向不同的方向運行;當(dāng)開炮時,就調(diào)用其 fire()函數(shù),作出相應(yīng)的行為。 在繪圖的過程中,除了要重繪坦克、地圖、子彈外,還會在右邊空白處繪出一個生命統(tǒng)計欄。 定義敵我雙方坦克 類 在 arry Tank list 中定義了所有坦克 (包括敵方坦克和玩家坦克 )的共同行為和屬性。 Good tank 和 bad tank 都繼承了該類以簡化結(jié)構(gòu)。在 trans list Direction[]中定義了坦克四個方向分別應(yīng)將原始圖片旋轉(zhuǎn)的角度 .。 構(gòu)造函數(shù)中創(chuàng)建了每個坦克必須擁有的一顆子彈,這些子彈就將只跟隨自己的坦克調(diào)動。 為了能提前預(yù)測碰撞,調(diào)用了 define Collision Rectangle 將碰撞矩形向前設(shè)置了一個象素。 坦克的共同行為 的 容器 類 設(shè)置 坦克的共同行為 的 容器類 的 步驟 : 用容器來裝敵人的 Tank;向容器中裝入多輛敵人 Tank。 畫出來 , 運行, ;添加 hit Tanks 方法, 容器 里面 一系列子彈都 可以 打tanks。 裝有 坦克的共同行為 的 容器類 功能: 炮彈添加好壞 b Good,根據(jù)好壞畫不同顏色 。修改炮彈的構(gòu)造方法 ,修改Tank 的 fire 方法 。修改 hit Tank 方法,好不能打好,壞不能打壞。 實現(xiàn)的代碼: 引用了 import .java. until .list Public. Bolean hittankes(list?tank? tanks 這樣就能夠打所以我們放置在坦克列表中的敵人坦克了。 第 4 章 程序分析和具體實現(xiàn) 19 玩家坦克的功能屬 性 構(gòu)造函數(shù)中需要將坦克方向設(shè)置為向上 , 因為剛出現(xiàn) 時就是這樣的狀態(tài)。當(dāng)開炮時,需要聯(lián)系的還有自身坦克、地圖。 這些都由坦克傳遞給子彈。 因為子彈是屬于坦克的,它的屬性需要跟當(dāng)前的坦克保持一致。接著 將子彈貼 顯示出來。最終調(diào)用其 start()開始子彈自己的線程。子彈一旦開始運行,就脫離了當(dāng)前坦克的控制,直到其生命周期終止。 無論子彈是屬于敵人還是玩家的,它都必須記錄自己的來源和攻擊的對象。在玩家坦克發(fā)射的子彈中,就必須將攻擊對象設(shè)置為所有的敵人。這樣,它才能有掃描的目標(biāo)。但卻提供必不可少的功能。他們可被外部調(diào)用,以取得生命值、死亡記數(shù)、重置位置。 事實上,敵人坦 克此時并沒有阻礙玩家前進(jìn)。這樣的判斷必須排除在考慮范圍外。當(dāng)然,在設(shè)置完成后,必須將將檢測區(qū)域設(shè)置回原先的狀態(tài),否則敵人在往后自己的檢測中將發(fā)生錯誤。 敵人坦克的功能屬性 由于和 good tank 同屬于一個 Tank Sprite 的繼承類,其功能就與 good tank 有很大的相似之處,但也有其自身的特別屬性。其主要功能流程圖 41圖 。 首先, Enemy Sprite 繼承了 Runable 接口。因為敵人的運行是自動的,需要有設(shè)定的程序讓它可自己控制 。 而不像 User Sprite 完全通過每次輸入的鍵盤信號來做出反映。因此,它可以運行在單獨的線程中。 添加敵人坦克的方法 : ( 1)在什么情況下是容許添加敵人坦克的呢。 Public void fill tank() {if (play rcount==o) Setlive(false)}也是說當(dāng)還有活著的玩家的前提下,才能夠添加敵人坦克。 畢業(yè)設(shè)計(論文) 20 ( 2)敵人的坦克數(shù)量是有一定限制的。 If(enemy count ?3+3*(lever1)amp。amp。enemy count?=20) ( 3)就是在坦克重生的地方,不能存在其他任何物體,例如河流,墻 ,坦克之類的,如果存在了,就要任意再選擇一個位置進(jìn)行重生。 這個功能是利用這個代碼來實現(xiàn)的。 While( t. hit object (main list)) {t. random set()} ( 4)此外還設(shè)置了獎勵坦克 就是說敵人坦克的 id 號是 9 的整數(shù)倍的時候,就會出現(xiàn)一輛特殊的獎勵坦克。 If(t. id %9==0) {t. set bonus (ture )} 這里簡單介紹一下獎勵坦克是怎么會事。有加血,加能量,和無敵三種。具體的以后會涉及到。 Get Random Direction()以當(dāng)前 系統(tǒng)時間作為種子,調(diào)用了 Random 類的 next Int()產(chǎn)生一個隨機的整數(shù),此整數(shù)取除 8 的余數(shù)的絕對值作為隨機的方向。此時返回的值的范圍就確定在 19 之間,正好對應(yīng)四個方向。將他們代入需要使用方向的函數(shù)中就可以使用了。 Get Random Step()的原理類似: Random random=new R andom(())。 每個敵人還需要擁有一個內(nèi)部的所有敵人的數(shù)組元素。這樣,它們才可開始 是否剛出現(xiàn) 前進(jìn) Y 可否開炮 開炮 可 否前進(jìn) 換向、取隨機移動步數(shù)、隨機開炮倒數(shù)記步數(shù) 結(jié)束 是否已死亡 是否碰撞 N Y N Y N Y N N 圖 41 敵方坦克運行流程圖 第 4 章 程序分析和具體實現(xiàn) 21 以自動檢測自己是否與同伴發(fā)生了碰撞,以便采取躲避、轉(zhuǎn)向等行動。 collidesWithOtherTank()將檢測是否與其他坦克(包括敵人和玩家)。if(i==number)break;語句將避免檢測到自己,永遠(yuǎn)返回真。 collidesInOtherTank()雖與上面的函數(shù)很相似,但仍有一些細(xì)微不同,那就是不需要在檢測前設(shè)置被檢測方的矩形區(qū)域。因為不需要進(jìn)行預(yù)先檢測。此函數(shù)用來檢測是否在剛出現(xiàn)時就與其他坦克發(fā)生碰撞的。如果一出現(xiàn),出口就被堵死,顯然,不能永遠(yuǎn)不出現(xiàn),那就應(yīng)采取其他的辦法,否則兩輛坦克將因為都處在碰撞狀態(tài)中而無法移出。 敵人的重生時間,也是與游戲進(jìn)行的 級別有關(guān)系的,一般來說,就是,當(dāng)游戲的級別越高的時候,生成敵人坦克的時間越短。 即 enemy revive delay=property. Get propert (enemy revive delay)level*5 但是當(dāng)生成時間小到一個特定的值的時候呢,這個生成時間就會不變了。在運行的線程中,需在每前進(jìn)的一步驟中循環(huán)做 事件 。 如果坦克已死亡,立刻退出。如果不是剛出現(xiàn),判斷是否與將其他 坦克發(fā)生碰撞,就向當(dāng)前方向前進(jìn)一步。 當(dāng)隨機發(fā)炮數(shù)減少到 0時,就進(jìn)行發(fā)炮的動作。發(fā)炮后應(yīng)立即重新賦值給隨機發(fā)炮數(shù),以便 重新倒數(shù)計算。 當(dāng)所有的步驟走完后,因為需要轉(zhuǎn)動方向,于是,調(diào)用一次隨機取得方向的函數(shù)再次獲值。其他的隨機值也應(yīng)當(dāng)重置。 子彈的運行和控制 每一個坦克都有他自己的一顆子彈,這顆子彈在任何一輛坦克被構(gòu)造時就一直存在,直至此坦克生命的結(jié)束,子彈的再次只是將屏幕上暫時掩蓋的圖象重新置于坦克炮筒才恰
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1