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

正文內(nèi)容

畢業(yè)設(shè)計-基于java的坦克大戰(zhàn)軟件程序設(shè)計-wenkub

2022-12-15 09:51:06 本頁面
 

【正文】 (x+15, y+10, x+30, y+10)。 case 1: //炮筒向右 //畫出上面矩形 (x, y, 30, 5,false)。 // (x+5,y+5 , 10, 20,false)。 case 1: ()。 } catch (Exception e) { ()。 (allEnNum+\r\n)。輸出流指的是將內(nèi)存中的數(shù)據(jù)寫入外部媒介,也分為了字符輸出流和字節(jié)輸出流 。 那么線程的作用有哪些呢, 最為典型的就是你在網(wǎng)絡(luò)上放一個服務(wù)端,一個客戶端訪問時,就會新建一個線程處理這個客戶端 的事務(wù),這樣的話只要不斷新建線程就可以處理多個用戶的請求了 。)。 (this)。 //注冊監(jiān)聽 (this)。 jmil =new JMenuItem(開始新游戲 (N))。 主程序流程如圖 所示: 繪圖與事件監(jiān)聽以及線程技術(shù)和 IO 流編程 Graphics 類 Graphics 類 是所有 圖形上下文 的抽象基類,允許 應(yīng)用程序 可 以在 組件 (已經(jīng)在各種設(shè)備上實現(xiàn)),以及閉屏圖像上,進(jìn)行繪制。用戶再次發(fā)射子彈 時只是將終止的線程再次激活。 運 行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先 對背景的所有物體進(jìn)行繪圖。 7. 用戶運行游戲時需要有分?jǐn)?shù)記錄的可能。同時為了游戲的公平性,己方坦克發(fā)出的子彈數(shù)量必須控制,不能一下發(fā)出太多顆。 4. 對于雙方坦克發(fā)出的子彈的控制也需要對其跟蹤控制,子彈也需要處在獨立的線程中。 2. 游戲中為了美觀,適用性強(qiáng) 以及操作的簡便性 , 我們主要利用 draw 函數(shù)畫出矩形,圓及線構(gòu)成一輛 Tank, 同時畫出子彈,敵方坦克可以直接引用之前畫出的坦克,這樣 畫圖的問題就基本解決了。 游戲面板與菜單的設(shè)計 ........................ 錯誤 !未定義書簽。 [關(guān)鍵字 ]: eclipse 平臺, 游戲, Java,坦克大戰(zhàn) 目 錄 摘 要 ....................................................... I Abstract ...................................................... I 第一章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) ................................ 4 本程序需解決的有關(guān)技術(shù)問題 ............................. 4 程序流程 ............................................... 4 繪圖與 事件監(jiān)聽以及線程技術(shù) 和 IO流編程 ................... 5 Graphics類 ............................................... 5 KeyListener監(jiān)聽機(jī)制 .......................... 錯誤 !未定義書簽。 本論文主要介紹了 坦克大戰(zhàn) 游戲的設(shè)計思路和實現(xiàn)過程。 “ 貪吃蛇 ” 、 “ 俄羅斯方塊 ” 這些簡單的游戲曾為一代 接一代的 游戲玩家所熟悉。 并且 隨著網(wǎng)絡(luò)通信技術(shù)的迅 速 發(fā)展,更加 有趣、更為生動的游戲?qū)映霾桓F。 這種設(shè)計主要是 利用函數(shù)對背景的所有物體進(jìn)行繪圖 ,然后利用線程以及 事件 監(jiān)聽機(jī)制對物體進(jìn)行控制,例如坦克,從而實現(xiàn)各種功能,最后就可以構(gòu)成一個活生生的坦克大戰(zhàn)游戲了。 runnable實現(xiàn)線程 ............................ 錯誤 !未定義書簽。 第三章 程序分析和實現(xiàn) 過程 ..................................... 19 游戲進(jìn)入前的 面板設(shè)計分析 .............................. 19 游戲邏輯 函數(shù) 及 其涉及到的若干類 ........................ 21 坦克的共同行為 ........................................ 22 玩家坦克的功能屬性 .................................... 23 敵人坦克的功能屬性 .................................... 24 子彈擊中坦克的爆炸 .................................... 25 記分系統(tǒng) .............................................. 27 本章小結(jié) : ............................................. 28 第四章 總 結(jié) ............................................. 28 本程序的總結(jié)和展望 ..................................... 28 經(jīng)驗和感想 ............................................ 29 參考文獻(xiàn) ...................................................... 30 4 第 一 章 程序結(jié)構(gòu)、思想和相關(guān)技術(shù) 本程序需解決的有關(guān)技術(shù)問題 1. 坦克大戰(zhàn)是一個可大可小的游戲,想法靈活可以編寫出很多功能 , 所以需要對程序的要求量應(yīng)該是巨大的,但是 其代碼利用率很高 ,因此實際編寫時也不需要太多的絞盡腦汁 ,可以利用各模塊程序的相近性靈活運用 。 3. 己方坦克的運行可以通過鍵盤響應(yīng)事件控制,但敵方則因為是自動運行,就需要有一定其一定的智能性;同時,出現(xiàn)在屏幕上的敵方可能會有較多的數(shù)量,這需要為每個敵方開辟一個線程以便能讓其獨立運行。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。 5. 對于敵我 雙方的坦克在 運動的過程中 也需要考慮 會不會發(fā)生碰撞也就是重疊狀況 體, 也要考慮坦克碰到邊緣時不能繼續(xù)前進(jìn),以免跑 出有效范圍, 每前進(jìn)一步都需要將所有的周圍環(huán)境 進(jìn)行嚴(yán)格的控制 。如何采用合理的記分標(biāo)準(zhǔn),需要進(jìn)行適當(dāng)?shù)脑O(shè)計。在主程序運行的線程中,畫面刷新將以一定的頻率采用雙緩沖技術(shù)對屏幕重繪,實時反映整個游戲的進(jìn)行狀態(tài)。 在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件 。 用fill3DRect 畫出矩形, fillOval 畫出圓,drawLine 畫出線,三個矩形,一個圓及一條線就可以構(gòu)成一個坦克,如圖: KeyListener 監(jiān)聽機(jī)制 要想使坦克動起來 ,子彈運動起來,以及菜單模式下的各種功能能夠控制坦克大戰(zhàn)游戲的運行,比如繼續(xù)游戲( continueGame),保存游戲并退出( saveExit),退出游戲( exit)以及開始新游戲( newgame)必須注冊監(jiān)聽機(jī)制,例如程序如下: (39。 jmi2 =new JMenuItem(退出游戲 (E))。 (continueGame)。 (exit)。 //對 jmil 相應(yīng) (this)。當(dāng)然我們的這個坦克大戰(zhàn)游戲的實現(xiàn)肯定離不開線程,例如己方坦克是必須要會移動的,那么敵人坦克也要移動,子彈呢?當(dāng)然也要會移動,等等 ? 。我們的坦克大戰(zhàn)游戲 就是利用 IO流來記錄 玩家的分?jǐn)?shù),成績的。 } catch (Exception e) { 7 ()。 // TODO: handle exception } } } 第二章 游戲的設(shè)計思路 畫出坦克 坦克大戰(zhàn)游戲中坦克當(dāng)然得分兩類,自己的坦克和 敵人的坦克 ,在游戲中我們就將兩類坦克分成兩種顏色,以示區(qū)分。 break。 // (x+5, y+10, 10, 10)。 //畫出下面的矩形 (x, y+15, 30, 5, false)。 break。 // (x+5, y+10, 10, 10)。 //畫出下面的矩形 9 (x, y+15, 30, 5, false)。 break。 所以在程序中我們試用 random 函數(shù)來控制敵方坦克的方向,給出 0123 四個數(shù)字, 0代表向上運動, 1 代表右, 2代表下, 3代表左。 所以本次 程序 是這樣安排的 :當(dāng)碰撞到障礙物或邊界時立即轉(zhuǎn)向,但 碰到玩家坦克時需要有一個等待的時 間,這個時間由碰撞前隨機(jī)取得的在某方向上的持續(xù)行走步數(shù)決定 (程序規(guī)定坦克走一定的路程后必須轉(zhuǎn)向其他方向,不然就不一直按照之前的方向一直走下去) ,當(dāng)發(fā)生坦克間碰撞時,此隨機(jī)數(shù)將在下一次循環(huán)前減少為原來的 2/3,這樣就實現(xiàn)了加快轉(zhuǎn)向的時間,避免死鎖在一個方向上靜止的停留過長的時間。 本次 程序中并未使用過多復(fù)雜的人工智能算法,如有時間,將可能再此方面加以完善。 ()。 ()。 int color。 =y。 } public void setY(int y) { = y。 12 } public void setSpeed(int speed) { = speed。 switch() { case 0: //我的坦克向上 //取出所有的敵人坦克 for(int i=0。amp。amp。+20=+20amp。=et.y+30) { return true。amp。 } if(+20=amp。=amp。 case 1: //坦克向右 //取出所有的敵人坦克 for(int i=0。amp。amp。+30=+20amp。+20=+30) { return true。amp。 } if(+30=amp。+20=amp。 case 2: //坦克向下 //取出所有的敵人坦克 for(int i=0。amp。amp。+20=+20amp。+30=+30) { return true。amp。 } 16 if(+20=amp。+30=amp。 case 3: //向左 //取出所有的敵人坦克 for(int i=0。amp。amp。=+20amp。+20=et.y+30) { return true。amp。 } if(=amp。+20=amp。 } return b。 如果來自玩家,則每一步需掃描所有的敵方坦克,檢查是否發(fā)生碰撞, 以便使擊中的坦克消 失。 最后 子彈對不同障礙物將有不同的反映。 (0)。 ()。具體程序如下: //創(chuàng)建菜單及菜單選項 jmb=new JMenuBar()。)。 jmi4 =new JMenuItem(繼續(xù)上局游戲 (S))。 (saveExit)。E39。 (jmil)。 (jm1)。 第 三 章 程序 分析
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1