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

正文內(nèi)容

基于java的打磚塊游戲畢業(yè)論文-閱讀頁(yè)

2024-11-27 22:00本頁(yè)面
  

【正文】 一關(guān)和第二關(guān)的擋板移動(dòng)速度,設(shè)置擋板不能超過(guò)邊界 當(dāng)擋板的坐標(biāo)超出左邊界時(shí),強(qiáng)制其坐標(biāo)為 0,擋板超出右邊界時(shí),強(qiáng)制其坐標(biāo)為(界面寬度 擋板長(zhǎng)度) 【代碼實(shí)現(xiàn)】 public void mouseMoved(MouseEvent arg0) { if (!gameOver) { if (level == 1) { 基于 Java 的打磚塊游戲開(kāi)發(fā) 16 = () 75。 if ( + = width) { = width 。 } } } Pad 類 Pad 類是擋板類,主要設(shè)計(jì)擋板的大小、顏色和移動(dòng)的速度與方向。 【代碼實(shí)現(xiàn)】 Pad(GamePanel panel) { = panel。 if( == 2) size = new Point(120,20)。 } ( 2) 擋板移動(dòng) 速度和方向 public void update() { if() { if( + ) { 基于 Java 的打磚塊游戲開(kāi)發(fā) 17 += 8。 } } } ( 3) 畫(huà)擋板 , GradientPaint的作用是填充漸變顏色,此處填充上方灰色到下方黑色顏色逐漸加深的漸變 【代碼實(shí)現(xiàn)】 public void draw(Graphics g) { Graphics2D g2 = (Graphics2D) g。 (yelloToRed)。 } Block 類 Blocl 類為磚塊類,功能主要是磚塊初始的排列和磚塊的寶物功能 ( 1) 磚塊位置初始化 。第二關(guān)設(shè)置磚塊數(shù)量為五行九列 磚塊大小和游戲界面大小是固定的,所以磚塊的間距要設(shè)計(jì)好,必須對(duì)每一個(gè)磚塊的具體位置進(jìn)行計(jì)算。定義數(shù)組存放磚塊的左 上角坐標(biāo),再定義一個(gè) Point型變量存放磚塊的長(zhǎng)寬。 //設(shè)置磚塊數(shù)量和排列 基于 Java 的打磚塊游戲開(kāi)發(fā) 18 if( == 1) { blockNumber = 32。 } if( == 2) { blockNumber = 54。 } size = new Point(50,20)。 //設(shè)置磚塊的位置 for(int i = 0。 i++) for(int j = 0。 j++) { location[i * + j] = new Point(()/2 + j * (), (i + 1) * 30 + 50) 。 for(boolean i:exist) { i = true。 if( == 1) { blockNumber = 32。 } if( == 2) { blockNumber = 54。 } size = new Point(50,20)。 基于 Java 的打磚塊游戲開(kāi)發(fā) 19 for(int i = 0。 i++) for(int j = 0。 j++) { location[i * + j] = new Point(()/2 + j * (), (i + 1) * 30 + 50) 。 for(boolean i:exist) { i = true。 for (int i = 0。 i++) { if (exist[i] == true) { (image, location[i].x, location[i].y, , , null)。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 (location[i].x, location[i].y, , )。 判斷子彈與磚塊的碰撞:因?yàn)樽訌検茄刂?Y軸豎直運(yùn)動(dòng),所以只要子彈在磚塊左右兩端之間且與磚塊下 邊接觸,即可判斷碰到當(dāng)前磚塊,如圖 411 圖 411 子彈與磚塊碰撞判斷 子彈與磚塊碰撞后會(huì)反彈 buldy=buldy,擋板碰到反彈回來(lái)的子彈會(huì)縮短長(zhǎng)度 buldy=buldy 【代碼實(shí)現(xiàn)】 public void hit(){ for(int j=0。j++) if([j]==true){ if(locY[j].y+amp。locX[j].xamp。locX[j].x+) { [j]=false。 break。} // 擋板碰到小球反彈回來(lái)的子彈時(shí),擋板長(zhǎng)度減少 if(locYamp。locXamp。locX+) { 。 dy = 3。 dy = 4。 圖 412 小球位置設(shè)置 【代碼實(shí)現(xiàn)】 if (ballMove) { // if () { += dx。 wallBounced()。 padBounced()。 else if (lor == 1) location = new Point( + ( * 2 / 3 + 20 diameter), )。 } } ( 3) 小球與磚塊碰撞檢測(cè),判斷小球是否碰到了磚塊,設(shè)置一個(gè)函數(shù)Bounce(),它用來(lái)判斷小球是否碰到磚塊 (或擋板 ),其中 bk_location 存放磚塊左上角坐標(biāo), bk_size 存放磚塊的大小 當(dāng)傳入的第二個(gè) Point 型參數(shù)等于十分之一磚塊長(zhǎng)度和磚塊寬度時(shí),小球碰到磚塊左邊界;當(dāng)傳入的第一個(gè) Point 型參數(shù)的 x 坐標(biāo)加上十分之一磚塊長(zhǎng)度,傳入的第二個(gè) Point 參數(shù)的 x坐標(biāo)是磚塊長(zhǎng)度的十分之八時(shí),小球碰到磚塊上方邊界和下方邊界;當(dāng)傳入的第一個(gè) Point 型參數(shù)的 x坐標(biāo)是磚塊左上角坐標(biāo)加上十分之八個(gè)磚塊的長(zhǎng)度,第二個(gè) Point 型參數(shù)的 x 坐標(biāo)是磚塊的十分之一時(shí),小球碰到磚塊右邊界。 【代碼實(shí)現(xiàn)】 public boolean Bounce(Point bk_location, Point bk_size) { if (( – diameter ) amp。 ( + ) amp。 ( – diameter ) amp。 ( + )) { return true。 } 基于 Java 的打磚塊游戲開(kāi)發(fā) 24 } public void blockBounced() { Point local1, local2, local3, size1, size2, size3。 i 。 local1 = new Point([i].x,[i].y)。 local2 = new Point([i].x + * 1 / 10, [i].y)。 local3 = new Point([i].x + * 9 / 10, [i].y)。 ( 4)小球與墻壁碰撞檢測(cè) 小球 X坐標(biāo)等于左 X邊界坐標(biāo)時(shí),小球與左邊界碰撞, Y軸方向速度不變,X 軸方向速度取反,同理,小球與右邊界碰撞,也是 Y 軸方向速度不變, X 軸方向速度取反,當(dāng)小球 Y 坐標(biāo)等于 0時(shí),與上邊界碰撞,小球 X軸方向速度不變,Y軸方向速度取反,如圖 413。 padCanBounce = true。 padCanBounce = true。 (fallTimes+1)。 padCanBounce = true。 try { stream = (file)。 } public void playSound() { info = new (, format)。 } catch (LineUnavailableException ex) { } try { (stream)。 } 基于 Java 的打磚塊游戲開(kāi)發(fā) 27 第 五 章 游戲的運(yùn)行與測(cè)試 軟件工程理論要求任何程序開(kāi)發(fā)都不能離開(kāi)軟件測(cè)試,游戲項(xiàng)目的開(kāi)發(fā)當(dāng)然也是如此。 測(cè)試的目的和原則 本次測(cè)試要找出游戲的各種錯(cuò)誤、缺陷,發(fā)現(xiàn)游戲中不合理的地方,進(jìn)一步完善游戲內(nèi)容,增強(qiáng)用戶的體驗(yàn),確保游戲正常運(yùn)行。 ( 2)測(cè)試用例要有輸入數(shù)據(jù)與預(yù)期輸出的結(jié)果兩部分。 ( 4)對(duì)測(cè)試結(jié)果檢查和記錄。 ( 6)為了后續(xù)游戲完善的方面,應(yīng)該將測(cè)試材 料歸檔,包括測(cè)試的計(jì)劃、用例、錯(cuò)誤統(tǒng)計(jì)與最終分析結(jié)果。如圖56 結(jié)果:異常。 } 圖 55擋板異常圖 圖 56 擋板異常 ( 2)鼠標(biāo)控制擋板 輸入:進(jìn)入游戲后左右移動(dòng)鼠標(biāo) 輸出:擋板沿著橫坐標(biāo)左右移動(dòng) 基于 Java 的打磚塊游戲開(kāi)發(fā) 30 結(jié)果:正常。 基于 Java 的打磚塊游戲開(kāi)發(fā) 33 第 六 章 總結(jié)與展望 論文工作總結(jié) 通過(guò)此次畢業(yè)設(shè)計(jì),我更深入的了解了 java,而且能用他做一些有趣的小應(yīng)用。 打磚塊游戲的開(kāi)發(fā),我認(rèn)為最主要的是一些游戲算法的設(shè)計(jì)和游戲界面界面的設(shè)計(jì),或者說(shuō)所有的小游戲都是以這些為核心。當(dāng)然,游戲設(shè)計(jì)實(shí)現(xiàn)的過(guò)程中還是遇到了很多困難,因?yàn)橐郧皼](méi)有用 java 做過(guò)游戲,所以很多方面不熟悉。 在做項(xiàng)目這段時(shí)間里,我學(xué)到了許多新知識(shí),同時(shí)復(fù)習(xí)并鞏固了之前學(xué)習(xí)的舊知識(shí),通過(guò)對(duì)它們的實(shí)踐,我對(duì)我自己的專業(yè)軟件工程也有了更深刻的理解。 展望 這次設(shè)計(jì)的打磚塊游戲的開(kāi)發(fā)基本達(dá)到 了預(yù)計(jì)要求,然而許多地方任然可以改進(jìn),歸納如下: 1 )游戲的界面可以設(shè)計(jì)的更加美觀一些; 2 )在游戲功能方面,可以增加更多的關(guān)卡,增加更多的特殊效果,比如:穿甲彈、得分加倍等道具; 3 )游戲可以移動(dòng)到手機(jī)上實(shí)現(xiàn)。 5 )希望以后能將游戲轉(zhuǎn)移到安卓手機(jī)上。 第1 版 .2020. [9] [美 ]布洛克著,楊春花譯 .Effective Java[M].機(jī)械工業(yè)出版社 .2020.基于 Java 的打磚塊游戲開(kāi)發(fā) 35 致 謝 經(jīng)過(guò)這么長(zhǎng)時(shí)間的艱苦戰(zhàn)斗,論文終于寫(xiě)完了,內(nèi)心歡呼不止。 在編寫(xiě)論文,指導(dǎo)老師林淑飛老師給予了我很 多的幫助,對(duì)我的項(xiàng)目提出各種建議和改進(jìn)方案,感激不盡。 感謝身邊的同學(xué)和朋友,多謝你們的各種幫助和鼓勵(lì)。 最后,再次向所有曾經(jīng)關(guān)心和幫助過(guò)我的老師和同學(xué)表示最誠(chéng)摯的謝意! 基于 Java 的打磚塊游戲開(kāi)發(fā) 36 北方民族大學(xué)畢業(yè)設(shè)計(jì)(論文)誠(chéng)信承諾書(shū) 學(xué)生姓名 張宇航 年級(jí) 10 級(jí) 所學(xué)專業(yè) 軟件工程 學(xué)號(hào) 20200463 所在學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院 學(xué)生承諾 本人慎重承諾和聲明: 我承諾在 畢業(yè)設(shè)計(jì)(論文)過(guò)程中 嚴(yán)格遵守學(xué)校有關(guān)規(guī)定,在指導(dǎo)教師的安排與指導(dǎo)下獨(dú)立完成所規(guī)定的畢業(yè)設(shè)計(jì)(論文)工作,決不弄虛作假,不請(qǐng)別人代做畢業(yè)設(shè)計(jì)(論文)或抄襲別人的成果。 學(xué)生(簽名): 年 月 日 教務(wù)處制
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1