九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

項(xiàng)目開設(shè)計(jì)(俄羅斯方塊).doc

  • 資源ID:8402394       資源大?。?span id="24d9guoke414" class="font-tahoma">609KB        全文頁數(shù):15頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

項(xiàng)目開設(shè)計(jì)(俄羅斯方塊).doc

俄羅斯方塊游戲JAVA版項(xiàng)目開發(fā)設(shè)計(jì)文檔Ver 1.0編制:駱華 審核:2014年8月1、 項(xiàng)目介紹俄羅斯方塊是一款風(fēng)靡全球的掌上游戲機(jī)和PC機(jī)游戲, 它造成的轟動(dòng)與創(chuàng)造的經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。它由俄羅斯人阿列克謝帕基特諾夫在1984年6月利用空閑時(shí)間所編寫的游戲程序,故得此名。俄羅斯方塊的基本規(guī)則是移動(dòng)、旋轉(zhuǎn)和擺放游戲自動(dòng)輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。它看似簡單卻變化無窮,俄羅斯方塊上手極其簡單,但是要熟練地掌握其中的操作與擺放技巧,難度卻不低。作為家喻戶曉老少皆宜的大眾游戲,其普及程度可以說是史上任何一款游戲都無法相比的。相信大多數(shù)人都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊的時(shí)代。由于俄羅斯方塊具有的教學(xué)性、動(dòng)態(tài)性與知名度,也經(jīng)常拿來作為游戲程序設(shè)計(jì)的練習(xí)題材。2、 項(xiàng)目需求 (一) 功能需求運(yùn)行游戲后,可選擇游戲難度,游戲開始后,由程序隨機(jī)產(chǎn)生所定義的圖形,右上角可看到下一個(gè)圖形,無操作時(shí),方塊豎直緩慢下落,圖形在接觸障礙物之前,可以由鍵盤控制向左右下移動(dòng),可通過空格鍵進(jìn)行翻轉(zhuǎn),可以進(jìn)行暫停、重新開始游戲,當(dāng)某一行被下落的方塊填滿后消除并計(jì)分,難度越大方塊下落速度相對(duì)提高,另外可修改游戲窗體風(fēng)格。(二) 性能需求1、游戲在不同分辨率下應(yīng)能適應(yīng)各種分辨率保證不變形。2、保證游戲性能,在雙核512M內(nèi)存下應(yīng)能流暢運(yùn)行。3、 涉及主要知識(shí)點(diǎn) (一)、開發(fā)環(huán)境搭建與配置1、jdk安裝配置2、eclipse安裝配置 (二)、界面布局1、AWT、Swing 2、菜單使用 (三)、游戲方塊 整個(gè)游戲中總共7種方塊樣式,每個(gè)方塊有4種變形,通過線程控制由4 * 4 個(gè)方格構(gòu)成的一個(gè)方塊的移動(dòng)、下落以及變形。(四)、游戲畫布 通過線程動(dòng)態(tài)改變游戲畫布的方格顏色,畫布通過檢查方格顏色來體現(xiàn)方塊的移動(dòng) (五)、事件 鍵盤監(jiān)聽事件 (六)、線程 整個(gè)游戲由線程控制,一輪游戲過程,實(shí)現(xiàn)了Runnable接口,一輪游戲是一個(gè)大循環(huán),在這個(gè)循環(huán)中,每隔100毫秒;檢查游戲中的當(dāng)前塊是否已經(jīng)到底了,如果沒有,就繼續(xù)等待。如果到底了,就看有沒有全填滿的行,如果有就刪除它,并為游戲者加分,同時(shí)隨機(jī)產(chǎn)生一新的當(dāng)前塊,讓它自動(dòng)下落。當(dāng)新產(chǎn)生一個(gè)塊時(shí),先檢查畫布最頂上的一行是否已經(jīng)被占了,如果是,可以判斷Game Over了。 4、 概要設(shè)計(jì)(采用開發(fā)模式、框架、模塊劃分、模塊之間通訊設(shè)計(jì)等,本項(xiàng)目無)5、 數(shù)據(jù)庫設(shè)計(jì) (概念數(shù)據(jù)模型、物理數(shù)據(jù)模型、表、字段、約束、存儲(chǔ)過程、函數(shù)、視圖等,本項(xiàng)目無)6、 界面設(shè)計(jì)本游戲只包含1個(gè)主界面 游戲菜單下包括開始新游戲、設(shè)置游戲方塊顏色、設(shè)置背景顏色、改變游戲難度等。控制菜單下包括游戲的暫停、繼續(xù)、重新開始以及停止。窗體風(fēng)格菜單下用來設(shè)置游戲窗體風(fēng)格。關(guān)于菜單下包括幫助和游戲簡介7、 類設(shè)計(jì)本項(xiàng)目包含ErsBlock、ErsBlocksGame、ControlPanel、ErsBox 以及GameCanvas 5個(gè)類,具體設(shè)計(jì)如下:(一)ErsBlock類 該類的主要功能為設(shè)計(jì)游戲方塊類,繼承自線程類(Thread),由 4 * 4 個(gè)方格(ErsBox)構(gòu)成一個(gè)塊,控制塊的移動(dòng)、下落、變形等。 (二)ErsBlocksGame類該類的主要功能為游戲主類,繼承自JFrame類,負(fù)責(zé)游戲的全局控制。內(nèi)含 1一個(gè)GameCanvas畫布類的實(shí)例引用, 2一個(gè)保存當(dāng)前活動(dòng)塊(ErsBlock)實(shí)例的引用,3一個(gè)保存當(dāng)前控制面板(ControlPanel)實(shí)例的引用; 利用線程實(shí)現(xiàn)了一輪游戲過程,一輪游戲是一個(gè)大循環(huán),在這個(gè)循環(huán)中,每隔100毫秒,檢查游戲中的當(dāng)前塊是否已經(jīng)到底了,如果沒有,就繼續(xù)等待。如果到底了,就看有沒有全填滿的行,如果有就刪除它,并為游戲者加分,同時(shí)隨機(jī)產(chǎn)生一個(gè)新的當(dāng)前塊,讓它自動(dòng)下落。當(dāng)新產(chǎn)生一個(gè)塊時(shí),先檢查畫布最頂上的一行是否已經(jīng)被占了,如果是,可以判斷Game Over了。(三)ControlPanel類該類的主要功能控制面板類,繼承自JPanel.上邊安放預(yù)顯窗口、等級(jí)、得分、控制按鈕,主要用來控制游戲進(jìn)程。(四)ErsBox類該類的主要功能是實(shí)現(xiàn)方格類,是組成塊的基本元素,用自己的顏色來表示塊的外觀 (五)GameCanvas類該類的主要功能是實(shí)現(xiàn)畫布類,內(nèi)有行數(shù) * 列數(shù)個(gè)方格類實(shí)例。繼承自JPanel類。 ErsBlock線程類動(dòng)態(tài)改變畫布類的方格顏色,畫布類通過檢查方格顏色來體現(xiàn)ErsBlock塊的移動(dòng)情況。8、 技術(shù)難點(diǎn)、解決方案和關(guān)鍵代碼1、 游戲方塊的旋轉(zhuǎn)和移動(dòng)游戲中總共有7種方塊類型,每種方塊有4種翻轉(zhuǎn),因此我們?cè)诔绦蛑欣命c(diǎn)陣圖,把4位16進(jìn)制數(shù)按每位換算成一行4位2進(jìn)制數(shù)的結(jié)果矩陣,理解為一個(gè)4*4的矩陣,比如說0x04e0轉(zhuǎn)換完后就是0000010011100000其中將0看作空的,1看作方塊的塊,就可以看出正好是長條形在4*4空間中的橫豎切換/* * 方塊的樣式數(shù)目為7 */private final static int BLOCK_KIND_NUMBER = 7;/* * 每一個(gè)樣式的方塊的反轉(zhuǎn)狀態(tài)種類為4 */private final static int BLOCK_STATUS_NUMBER = 4;/* * 分別對(duì)應(yīng)對(duì)7種模型的28種狀態(tài) */public final static int STYLES = / 共28種狀態(tài)0x0f00, 0x4444, 0x0f00, 0x4444, / 長條型的四種狀態(tài)0x04e0, 0x0464, 0x00e4, 0x04c4, / T型的四種狀態(tài)0x4620, 0x6c00, 0x4620, 0x6c00, / 反Z型的四種狀態(tài)0x2640, 0xc600, 0x2640, 0xc600, / Z型的四種狀態(tài)0x6220, 0x1700, 0x2230, 0x0740, / 7型的四種狀態(tài)0x6440, 0x0e20, 0x44c0, 0x8e00, / 反7型的四種狀態(tài)0x0660, 0x0660, 0x0660, 0x0660, / 方塊的四種狀態(tài);方塊的移動(dòng)分為向左、右和下3個(gè)方向,/* * 塊向左移動(dòng)一格 */public void moveLeft() moveTo(y, x - 1);/* * 塊向右移動(dòng)一格 */public void moveRight() moveTo(y, x + 1);/* * 塊向下落一格 */public void moveDown() moveTo(y + 1, x);/* * 將當(dāng)前畫移動(dòng)到newRow/newCol所指定的位置 * param newRow int, 目的地所在行 * param newCol int, 目的地所在列 * return boolean, true-移動(dòng)成功,false-移動(dòng)失敗 */private synchronized boolean moveTo(int newRow, int newCol) if (!isMoveAble(newRow, newCol) | !moving) return false;earse();y = newRow;x = newCol;display();canvas.repaint();return true;對(duì)于方塊的翻轉(zhuǎn),/* * 塊變型 */public void turnNext() for (int i = 0; i < BLOCK_KIND_NUMBER; i+) for (int j = 0; j < BLOCK_STATUS_NUMBER; j+) if (STYLESij = style) int newStyle = STYLESi(j + 1) % BLOCK_STATUS_NUMBER;turnTo(newStyle);return;/* * 將當(dāng)前塊變成newStyle所指定的塊樣式 * param newStyle int,將要改變成的塊樣式,對(duì)應(yīng)STYLES的28個(gè)值中的一個(gè) * return boolean,true-改變成功,false-改變失敗 */private boolean turnTo(int newStyle) if (!isTurnAble(newStyle) | !moving) return false;earse();int key = 0x8000;for (int i = 0; i < boxes.length; i+) for (int j = 0; j < boxesi.length; j+) boolean isColor = (newStyle & key) != 0);boxesij.setColor(isColor);key >>= 1;style = newStyle;display();canvas.repaint();return true;2、 游戲中消行和結(jié)束如果游戲畫布中有全填滿的行,我們就應(yīng)該從畫布中刪除當(dāng)行,根據(jù)最頂行是否被占來判斷游戲是否結(jié)束。/* * 檢查畫布中是否有全填滿的行,如果有就刪除之 */public void checkFullLine() for (int i = 0; i < canvas.getRows(); i+) int row = -1;boolean fullLineColorBox = true;for (int j = 0; j < canvas.getCols(); j+) if (!canvas.getBox(i, j).isColorBox() fullLineColorBox = false;break;if (fullLineColorBox) row = i-;canvas.removeLine(row); /* * 當(dāng)一行被游戲者疊滿后,將此行清除,并為游戲者加分 * param row int, 要清除的行,是由ErsBoxesGame類計(jì)算的 */public synchronized void removeLine(int row) for (int i = row; i > 0; i-) for (int j = 0; j < cols; j+)boxesij = (ErsBox) boxesi - 1j.clone();score += ErsBlocksGame.PER_LINE_SCORE;scoreForLevelUpdate += ErsBlocksGame.PER_LINE_SCORE;repaint();/* * 根據(jù)最頂行是否被占,判斷游戲是否已經(jīng)結(jié)束了。 * return boolean, true-游戲結(jié)束了,false-游戲未結(jié)束 */private boolean isGameOver() for (int i = 0; i < canvas.getCols(); i+) ErsBox box = canvas.getBox(0, i);if (box.isColorBox() return true;return false;9、 參考資料 1、 http:/www.docin.com/p-304555640.html 俄羅斯方塊需求分析2、 http:/wenku.baidu.com/link?url=e07lO7mcb4f_tzFRQXveVjow0R4otowq9ROZLL5aoANQBUG3VlE0z0kYpBOuxtowHUISeTL8lepul-hSyDoixn49aWnLq3HBvqsBs-a875S 基JAVA的俄羅斯方塊游戲開發(fā)3、 http:/image.baidu.com/i?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word 多線編程4、 http:/wenku.baidu.com/link?url=Hh_oYQfhalWzjDX2HHWbtOCHCTKkAb_1J2RuO2u_oLZNk5eTvEyFD-nneOCKFMIh_iscam9rtu6_aZo1RFiyEb7PdOuozLwwgYU4NLUGuMm 俄羅斯方塊設(shè)計(jì)文檔

注意事項(xiàng)

本文(項(xiàng)目開設(shè)計(jì)(俄羅斯方塊).doc)為本站會(huì)員(jian****018)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!