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

正文內(nèi)容

畢業(yè)論文-基于java語言的坦克大戰(zhàn)游戲設計-資料下載頁

2025-01-16 22:11本頁面
  

【正文】 16 圖 敵方坦克主體圖 我方坦克主體方向圖如下所示: 圖 我方坦克主體圖 隨著坦克方向的改變與之相對應的炮筒方向也要與之相對應。敵方坦克炮筒方向圖如下所示: 圖 我方坦克 炮筒方向圖 17 我方坦克炮筒圖如下所示: 圖 我方坦克炮筒方向圖 Missile 類基本功能分析 Misslile(子彈 )類和 Tank 類一樣,只封裝一些變量屬性和靜態(tài)方法,主要變量包括:子彈自己的大?。?width ,height),運動速度 (xspeed:在 x 軸方向的速度; yspeed:在 Y 軸方向的速度 )、子彈的好壞( good)、子彈是否存活 (Live)等。如下表所示: 表 Missile 類的成員變量 成員變量描述 變量類型 名稱 子 彈的寬度 int width 子彈的高度 int height X 坐標上的移動速度 Int xspeed Y 坐標上的移動速度 int yspeed 子彈的好壞 boolean good 子彈是否存活 boolean Live Misslie 類持有一個 TankClient 類(大管家)的引用 tc, TankClient 類要執(zhí)行發(fā)射炮彈操作時調(diào)用 Missile 類中的方法。 Misslie 類中的主要方法如下: 18 ( 1) draw()方法:負責畫出子彈的所有活動; ( 2) move()方法:先判斷方向再移動,并給它一定的移動速度; ( 3) getRect()方法:負責取得子彈的外切方形,為碰撞檢測做準備; ( 4) hitTank()方法:檢測子彈是否撞到坦克,若撞到返回 true,否則返回 false; public boolean hitTank(Tank t){ if(amp。amp。().intersects(())amp。amp。 ()amp。amp。 != ()){//坦克存在并且還活著 if(()){ (()20)。 if(() =0) (false)。 } else{ (false)。 } =false。 Explode e=new Explode(x,y,tc)。 (e)。 return true。 } return false。 } ( 5) hitTanks()方法:檢測是否撞到一系列坦克中的一個; public boolean hitTanks(ListTanktanks){ for(int i=0。i()。i++){ if(hitTank((i))){ return true。 } } return false。 } ( 6) hitWall()方法:檢測子彈和墻是否相撞。 public boolean hitWall(Wall w){ if(amp。amp。().intersects(())){ =false。 return true。 } return false。 } Explode 類基本功能分析 Explode(爆炸 )類也是一個只封裝自己的變量和方法的外部包裝類,沒有 main方法,主要變量包括,爆炸的位置( x,y) 、爆炸效果是否存在( Live)。 Explode 類主要是 供TankClient 類需要時調(diào)用它的 draw()方法,當子彈擊中坦克時需要產(chǎn)生爆炸。使用 19 11 張圖片重疊現(xiàn)實爆炸效果如 圖所示: 圖 爆炸圖 Blood 類基本功能分析 Blood(血塊)類主要負責當我方坦克的生命值下降到 40 的時候,被 TankClient類和 TankClient2 類調(diào)用,使我方坦克可以捕獲血塊,補充生命。主要的屬性有血塊出現(xiàn)的位置( x,y)和血塊的是否存在( Live)。 Blood 類中的主要方法如下: ( 1) draw()方法:負責畫出血塊的所有活動; ( 2) move()方法:設置血塊出現(xiàn)的隨機位置 public void move(){ = ((35)+3)*20。 = ((25)+3)*20。 } ( 3) getRect()方法:碰撞檢測,主要時為了判定我方坦克與血塊的碰撞,發(fā)生碰撞則我方坦克捕獲血塊,增加生命。 本章小結(jié) 本章首先對整個游戲設計在技術,經(jīng)濟,操作上進行了可行性分析;其次對游戲要達到怎么樣的需求,要實現(xiàn)哪些功能做了一個大概的敘述;對實現(xiàn)這些功能所設計到的類進行了詳細的描述,最后再詳細的介紹了系統(tǒng)要實現(xiàn)這些功能所涉及到的各個類之間的關系 ,類中的變量以及其中的所調(diào)用的方法,以及對部分主要功能進行代碼描述。 20 4 系統(tǒng)實現(xiàn) 游戲主窗 體實現(xiàn) StartFrame 類主要是負責游戲的開始窗體,它是整個程序的主類。運行程序后進入游戲主界面,主界面上包括兩個下拉菜單條,“開始”和“關于”,玩家點擊“開始”菜單條下可以選擇游戲模式;“關于”下拉菜單條中有關于游戲 、 關于作者,關于操作的信息,方便玩家了解游戲規(guī)則。游戲主窗體界面如圖 所示: 圖 游戲主窗口預覽效果圖 單人游戲的實現(xiàn) TankClient 類負責畫出單人模式游戲運行時的窗體,它是整個游戲運行和所有活動的場所。為了游戲不至于太單調(diào),還配置了背景音樂。除此之外,本設計 優(yōu)點是 TankClient類還封裝了一個 update()方法,使用雙緩沖消除閃爍現(xiàn)象。因為刷新重畫頻率太快, paint()方法還沒有完成,會造成逐條顯示,影響系統(tǒng)的運行,所以解決辦法是創(chuàng)建一個虛擬屏幕,在屏幕的后面,在要畫的將所有的東西畫在虛擬屏幕上,也就是內(nèi)存上,畫完之后一次性將虛擬屏幕上的內(nèi)容貼到屏幕上,這樣就消除了閃爍現(xiàn)象,用戶的眼睛便感覺不到閃爍了。 TankClient 類是整個系統(tǒng)的“大管家”,當要執(zhí)行某動作時,“大管家”只需要調(diào)用各個類中封裝好的方法,讓被調(diào)用的類自己去執(zhí)行它自己的方法,這更體現(xiàn)了 面向?qū)ο蟮乃枷搿? 解決閃爍現(xiàn)象的方法如下: public void update(Graphics g) { if(offScreenImage ==null){ offScreenImage =(1200,700)。 } Graphics goffScreen=()。 21 Color c =()。 ()。 (0, 0 ,1200,700)。 (c)。 if(j/10+1=5){ paint(goffScreen)。 }else{ paint1(goffScreen)。 } (offScreenImage,0,0,null)。 } 游戲主界面,在下拉菜單中選擇單機游戲進入單人模式的游戲運行界面,通過鍵盤控制坦克運動,相互對戰(zhàn),當被打中時產(chǎn)生一個爆炸,屏幕左上方顯示游戲信息:子彈數(shù)目(出界就死亡)、爆炸數(shù)目、敵方坦克數(shù)目、玩家坦克生命值(當玩家坦克被擊中5 次時,玩家坦克死亡)、玩家得分、關卡數(shù)。墻,水,草,其中坦克和子彈不可以穿過墻,坦克不可以穿過水。血塊可以補充生命。移動控制鍵為方向鍵,射擊鍵“ Z”,其效果圖如圖 所示: 圖 單機游戲 模式主界面圖 玩家坦克有一個特權就是使用超級炮彈,可同時向八個方向發(fā)射炮彈,超級炮彈鍵為“ X”效果如圖 所示: 墻 水 草 敵方坦克 我方坦克 炮彈 血條 信息 血塊 22 圖 發(fā)射超級炮彈 隨著本關卡中敵方坦克的消失,游戲自動進入下一關卡。本游戲總共有 5 個關卡,每個關卡的地圖各不相同。部分關卡具體實現(xiàn)代碼如下: public void wallmap(Graphics g){ switch(j/10+1){ case 1:{ (g)。 (g)。 new Wall(300,200,100,30).draw(g)。 new Wall(400,200,100,30).draw(g)。 new Wall(500,200,100,30).draw(g)。 new Wall(430,230,30,100).draw1(g)。 new Wall(430,330,30,100).draw1(g)。 new Wall(430,430,30,100).draw1(g)。 new Wall(800,450,100,30,this).draw2(g)。 new Wall(900,450,100,30,this).draw2(g)。 new Wall(1000,450,100,30,this).draw2(g)。 new Wall(930,200,30,100,this).draw3(g)。 new Wall(930,250,30,100,this).draw3(g)。 new Wall(930,350,30,100,this).draw3(g)。 break。 } } } 當玩家通過第五關卡時,玩家獲得勝利,提示 游戲結(jié)束,可以選擇重新返回 主菜單或者退出該游戲模式,效果如圖 所示: 23 圖 結(jié)束時游戲界面 兩人游戲功能的實現(xiàn) 兩人游戲功能是由 TankClient2 類來實現(xiàn)的。 TankClient2 類通過調(diào)用 Tank 類, Wall類, Explode 類, Blood 類的方法來實現(xiàn)兩人游戲模式。其中包括我方坦克兩輛,敵方坦克,障礙物墻 、 水 、 草,我方的血量 、 得分 、剩余敵方坦克數(shù)量等信息。射擊鍵為“ B”,超級炮彈鍵為“ N”。效果如圖 所示: 圖 兩人游戲界面 我方坦克一號 我方坦克二號 24 當玩家坦克最終通關后,顯示游 戲結(jié)束界面。效果圖如 所示: 圖 兩人游戲結(jié)束界面 本章小結(jié) 本章主要介紹了該系統(tǒng)的實現(xiàn)和運行,分別敘述了在單人游戲模式和兩人游戲模式下游戲的運行和操作過程。在單人模式下,玩家的游戲發(fā)射火力要比電腦隨機產(chǎn)生的坦克能力稍若一些,當玩家遇到緊急情況時,玩家可以發(fā)射超級炮彈。在兩人模式下由于筆記本鍵盤的位置太緊湊,所以將我方二號坦克設置為智能移動和攻擊。到此為止,本設計基本完成預期效果。
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1