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

正文內(nèi)容

基于java的飛機(jī)大戰(zhàn)游戲的設(shè)計(jì)與實(shí)現(xiàn)論文-閱讀頁(yè)

2024-11-30 23:43本頁(yè)面
  

【正文】 法。 (3)Datagram 是這些功能中最低級(jí)的一種。但是以 Datagram 的方式傳送數(shù)據(jù)時(shí),只是把數(shù)據(jù) 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 8 的目的地記錄在數(shù)據(jù)包中,然后就直接放在網(wǎng)絡(luò)上進(jìn)行傳輸,系統(tǒng)不保證數(shù)據(jù)一定能夠安全送到,也不能確定什么時(shí)候可以送到。 UML 面向?qū)ο筌浖_(kāi)發(fā)方法已 經(jīng)成為現(xiàn)代軟件工程的重要手段。同時(shí)這種機(jī)制將傳統(tǒng)的以數(shù)據(jù)為中心的軟件開(kāi)發(fā)方法,改變?yōu)橥瑫r(shí)關(guān)注數(shù)據(jù)的信息與功能,從而可以開(kāi)發(fā)出適應(yīng)信息與功能變化的系統(tǒng)。但是 UML 本身只是一種描述工具,而不是一種開(kāi)發(fā)方法,使用 UML 快速設(shè)計(jì)和表達(dá)系統(tǒng)模型,必須有有效的設(shè)計(jì)方法支。它有一個(gè)游戲循環(huán)(這個(gè)過(guò)程被反復(fù)執(zhí)行直到游戲退出)。 從游戲的基本玩法出發(fā),主要就是 Hero airplane 和 Enemy airplane 的對(duì)決,首先應(yīng)該有個(gè)界面來(lái)裝載整個(gè)游戲,然后就是 Hero airplane 的移動(dòng)方式(鼠標(biāo)移動(dòng)或鍵盤(pán)移動(dòng)),接下來(lái)就是 Hero airplane 子彈的生成,然后是 Enemy airplane 的出現(xiàn)方式,然后 Enemy airplane 的子彈生成,最后是 Hero airplane 與 Enemy airplane 的對(duì)戰(zhàn)結(jié)果。一個(gè)實(shí)時(shí)運(yùn)行的最終作品,每秒都會(huì)運(yùn)行成千上萬(wàn)行程序,繪圖事件、鍵盤(pán)事件都會(huì)以極高的頻率在后臺(tái)等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致 程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。 這款游戲名字叫“飛機(jī)大戰(zhàn)游戲”。雙方以互相攻擊的方式,以及上下左右移動(dòng)躲避對(duì)方的攻擊。當(dāng)攻擊命中敵人時(shí),就可以打死敵人,直到殺死關(guān)卡所有的敵人,玩家獲得本關(guān)卡的勝利。 可行性分析 可行性分析也稱(chēng)為可行性研究,是在調(diào)查的基礎(chǔ)上,針對(duì)新軟件的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新軟件的開(kāi)發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)等方面進(jìn)行分析和研究,以避免投資失誤,保證新軟件的開(kāi)發(fā)成功 [2]。 下面將分別從技術(shù)、經(jīng)濟(jì)、社會(huì)三個(gè)方面對(duì)基于 java 的 飛機(jī)大戰(zhàn) 游戲的建設(shè)進(jìn)行分析和研究。該軟件采用的開(kāi)發(fā)工具是功能強(qiáng)大的 ,他具有是十分強(qiáng)的功能擴(kuò)展能力,需要的只是下載安裝相關(guān)的插件,開(kāi)發(fā)平臺(tái) J2ME 更是當(dāng)前最受歡迎的手機(jī)軟件開(kāi)發(fā)平臺(tái),而且它完全滿(mǎn)足 飛機(jī)大戰(zhàn) 游戲的開(kāi)發(fā)實(shí)現(xiàn)的要求。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越低,其硬件平 臺(tái)完全能滿(mǎn)足此軟件的需要。 ( 2) 經(jīng)濟(jì)可行性 本軟件開(kāi)發(fā)成本低,在經(jīng)濟(jì)上是可以接受的,并且本軟件實(shí)施后可以顯著提高工作效率,有助于 飛機(jī)大戰(zhàn) 游戲的管理。當(dāng)軟件滿(mǎn)足不了用戶(hù)需求時(shí),只需對(duì)信息加以更新,對(duì)具體功能模塊加以改進(jìn)完善。 ( 3) 社會(huì)可行性 本軟件的社會(huì)可行性主要從法律因素、 用戶(hù)使用可行性?xún)煞矫孢M(jìn)行研究。 (2)用戶(hù)使用可行性 本軟件對(duì)用戶(hù)的要求,不需要特別的技術(shù)能力。這樣既減少投入成本又簡(jiǎn)化了操作環(huán)節(jié)。 總體設(shè)計(jì)原則 本軟件為了設(shè)計(jì)、實(shí)現(xiàn)和后期維護(hù)的方便,以及軟件用戶(hù)使用 的便利,所以必須采取一定的設(shè)計(jì)原則。 針對(duì)性:本軟件設(shè)計(jì)是基于 java 的 飛機(jī)大戰(zhàn) 游戲的需求定向開(kāi)發(fā)設(shè)計(jì),所以具有專(zhuān)業(yè)突出和很強(qiáng)的針對(duì)性。 一致性:界面整體設(shè)計(jì)風(fēng)格以及命名規(guī)則的一致性:整體界面布局和用圖用色風(fēng)格及變量、類(lèi)名和其他元素的命名規(guī)則保持一致。元素風(fēng)格一致性:界面元素的美觀風(fēng)格、擺放位置在同一個(gè)界面和不同界面之間都應(yīng)該是一致的。 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 11 功能模塊設(shè)計(jì) 游戲狀態(tài)控制功能 游戲的狀態(tài)控制包括運(yùn)行及結(jié)束游戲,首先進(jìn)入游戲的加載頁(yè)面,在游戲進(jìn)行時(shí),你需要去 打死所有的敵機(jī)來(lái)完成當(dāng)前關(guān)卡 , 你的生命降低為 0 的時(shí)候 游戲 就會(huì) 結(jié)束 ,界面 會(huì) 出現(xiàn)提示 。 游戲界面繪畫(huà)功能 在右 下角顯示 本機(jī)血條, 左下角顯示持有炸彈數(shù)和所得分?jǐn)?shù), 游戲主屏主要用來(lái)輸出用戶(hù)對(duì) Hero airplane 的控制與 Enemy airplane 的動(dòng)作顯示。 游戲難點(diǎn)分析 ( 1) 繪圖美化。所以在本游戲中,主要采用借鑒原有的游戲的畫(huà)面,友機(jī)和敵機(jī)的形象也應(yīng)美觀。線(xiàn)程機(jī)制的應(yīng)用是實(shí)現(xiàn)游戲控制的基石,游戲中的刷幀、后臺(tái)資源的加載以及對(duì)各類(lèi)角色(如敵機(jī),友機(jī))的自動(dòng)控制都需要線(xiàn)程來(lái)實(shí)現(xiàn),以此來(lái)實(shí)現(xiàn)對(duì)整個(gè)游戲的控制。比如敵機(jī)和友機(jī),敵機(jī)子彈和友機(jī)等等。 ( 4) 動(dòng)畫(huà)的實(shí)現(xiàn)。圖片數(shù)組,不斷改變畫(huà)在畫(huà)布上的圖片數(shù)組下標(biāo),從而實(shí)現(xiàn)動(dòng)畫(huà)的形成,即一張圖片是一幀。 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 12 4 飛機(jī)大戰(zhàn) 功能實(shí)現(xiàn) 游戲首頁(yè)的實(shí)現(xiàn) 界面實(shí)現(xiàn) 飛機(jī)大戰(zhàn)的界面如圖 41 所示。 圖 42 游戲初始化 流程圖 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 14 核心代碼 游戲初始化代碼如下: public final void paint(Graphics g) { ()。 ()。 (g)。 IntblockY=+(*( VISIBLE_ROW))。 (blockX + 1, blockY + 1, 1, this. blockSize 1)。 (blockX, blockY, 1, 1)。 (blockX, blockY, , )。 圖 43 飛機(jī)大戰(zhàn)開(kāi)始界面 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 16 流程圖 流程圖如圖 44 所示。 for(int i = 0。 i++) { int rowY = (i)。 } } int numClearedRows = 0。 y = 0。 } if((y)) { numClearedRows++。 } } for(int i = 0。 i++) { (i)。 } 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 18 發(fā)射子彈模塊的實(shí)現(xiàn) 界面實(shí)現(xiàn) 發(fā)射子彈界面實(shí)現(xiàn)如圖 45 所示。 圖 46 發(fā)射子彈 模塊程序流程圖 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 20 核心代碼 發(fā)射子彈 實(shí)現(xiàn)代碼如下: public void rotate(int pivotX, int pivotY, boolean rotateDirection) { if( == ) { // 如果翻轉(zhuǎn)類(lèi)型為 TOGGLE rotateDirection = 。 // 如果與 canRotate 匹配, 中心點(diǎn)方塊將被使用 } // 重構(gòu)四個(gè)小塊,每個(gè)都轉(zhuǎn)動(dòng) for(int i = 0。 i++) { int blockX = (i)。 // 左旋轉(zhuǎn):交換 x 和 y 坐標(biāo), x 坐標(biāo)取反 // 右旋轉(zhuǎn):交換 x 和以坐標(biāo), y 坐標(biāo)取反 int dx = blockY pivotY。 if(rotateDirection) { // 如向左旋轉(zhuǎn) dx *= 1。 } int rotateX = pivotX + dx。 (i, rotateX, rotateY)。在 中的 checkRowCompleted()方法實(shí)現(xiàn)了此 功能,其代碼如下: public boolean checkRowCompleted(int rowY) { for(int x = 0。 x++) { if( == (x, rowY)) { // 選中目標(biāo),發(fā)射子彈 return false。 } 當(dāng) 擊中敵機(jī)后,積分就會(huì)有所變 化 ,計(jì)算 并顯示出用戶(hù)當(dāng)前的分?jǐn)?shù) 。其實(shí)現(xiàn)由 init()方法控制,其代碼如下: private void init() { = new TetrisBoard()。 = new TetrisPiece()。 //初始化數(shù)組 = ()。 = new Random()。 ()。 } 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 22 積分模塊的實(shí)現(xiàn) 界面的實(shí)現(xiàn) 飛機(jī)大戰(zhàn)積分模塊界面如圖 47 所示。 Font font = new Font(宋體 , 1, 20)。 (積分 : + , 0, 470)。 for (int i = 0。 i++) { Role chara1 = (Role) (i)。 ++。 } } 全屏爆炸時(shí),計(jì)算炸死幾個(gè)敵人增長(zhǎng)分?jǐn)?shù): if(0){ for (int i = 0。 i++) { Role chara1 = (Role) (i)。amp。amp。amp。amp。amp。 if(chara1 instanceof Enemy){ ++。 if () { gameMode = 12。 } else { ()。 (font)。 (Game Over, (450 fontMetrics .stringWidth(Game Over)) / 2, (500 + fontMetrics .getHeight()) / 2 50)。 (score, (450 fontMetrics .stringWidth(score)) / 2, (500 + fontMetrics .getHeight()) / 2 20)。 } } 太原理工大學(xué)畢業(yè)設(shè)計(jì) (論文 )用紙 25 積分的輸出如圖 48 所示。 碰撞畫(huà)面的實(shí)現(xiàn) 繪制爆炸如圖 49 所示。amp。amp。amp。 //如果碰到子彈血量減少 if (chara instanceof EnemyBeam){ power。 if (power = 0) { dead()。 } return tru
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1