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

正文內(nèi)容

基于net的俄羅斯方塊游戲設(shè)計與實現(xiàn)(編輯修改稿)

2024-07-17 12:48 本頁面
 

【文章內(nèi)容簡介】 ,例如bthis is a isample/i string/b。這好比是將起始和結(jié)束標簽看作是數(shù)學中的左右括號:在沒有關(guān)閉所有的內(nèi)部括號之前,是不能關(guān)閉外面的括號的。4. 所有的特性都必須有值。5. 所有的特性都必須在值的周圍加上雙引號。如今,XML已經(jīng)是世界上發(fā)展最快的技術(shù)之一。它的主要目的是使用文本以結(jié)構(gòu)化的方式來表示數(shù)據(jù)。在某些方面,XML文件也類似于數(shù)據(jù)庫,提供數(shù)據(jù)的結(jié)構(gòu)化視圖[16]。 多線程每個正在系統(tǒng)上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態(tài)執(zhí)行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執(zhí)行[17]。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里執(zhí)行多任務(wù)。通常由操作系統(tǒng)負責多個線程的調(diào)度和執(zhí)行。多線程是為了使得多個線程并行的工作以完成多項任務(wù),以提高系統(tǒng)的效率。線程是在同一時間需要完成多項任務(wù)的時候被實現(xiàn)的。多線程是這樣一種機制,它允許在程序中并發(fā)執(zhí)行多個指令流,每個指令流都稱為一個線程,彼此間互相獨立[18]。線程又稱為輕量級進程,它和進程一樣擁有獨立的執(zhí)行控制,由操作系統(tǒng)負責調(diào)度,區(qū)別在于線程沒有獨立的存儲空間,而是和所屬進程中的其它線程共享一個存儲空間,這使得線程間的通信遠較進程簡單。多個線程的執(zhí)行是并發(fā)的,也就是在邏輯上“同時”,而不管是否是物理上的“同時”[19]。如果系統(tǒng)只有一個CPU,那么真正的“同時”是不可能的,但是由于CPU的速度非???,用戶感覺不到其中的區(qū)別,因此我們也不用關(guān)心它,只需要設(shè)想各個線程是同時執(zhí)行即可。多線程和傳統(tǒng)的單線程在程序設(shè)計上最大的區(qū)別在于,由于各個線程的控制流彼此獨立,使得各個線程之間的代碼是亂序執(zhí)行的,由此將帶來的線程調(diào)度,同步等問題[20]。使用線程的好處有以下幾點:使用線程可以把占據(jù)長時間的程序中的任務(wù)放到后臺去處理。用戶界面可以更加吸引人,這樣比如用戶點擊了一個按鈕去觸發(fā)某些事件的處理,可以彈出一個進度條來顯示處理的進度。程序的運行速度可能加快。在一些等待的任務(wù)實現(xiàn)上如用戶輸入、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內(nèi)存占用等等。3 系統(tǒng)設(shè)計 系統(tǒng)設(shè)計思想游戲是用來給大家娛樂的,所以要能在使用的過程中給大家?guī)砜鞓?,消除大家的疲勞,所以在游戲中添加了漂亮的場景和動聽的音樂,設(shè)置了過關(guān)升級的功能,激發(fā)大家的娛樂激情。 從游戲的基本玩法出發(fā),主要就是俄羅斯方塊的形狀和旋轉(zhuǎn),在設(shè)計中在一個圖片框中構(gòu)造了一個30*30(像素)的小塊,由這些小塊組合成新的形狀,每四個小塊連接在一起就可以構(gòu)造出一種造型,總共設(shè)計了7中造型,每種造型又可以通過旋轉(zhuǎn)而變化出2到4種形狀,在游戲窗體中用戶就可以使用鍵盤的方向鍵來控制方塊的運動,然后對每一行進行判斷,如果有某行的方塊是滿的,則消除這行的方塊,并且使上面的方塊自由下落,其中,方塊向下的速度是有時鐘控件控制的,在游戲中,用戶也可以使用向下鍵加快下落速度,定義一個變量,對消除的函數(shù)進行記錄,最后就可以得出用戶的分數(shù),用if 語句對分數(shù)判斷,達到一定的積分就可以升級到下一個檔次。 俄羅斯方塊游戲設(shè)計主要包括以下10個方面:1. 游戲界面的設(shè)計。2. 俄羅斯方塊的實現(xiàn)。3. 鍵盤輸入信息的獲取。4. 俄羅斯方塊的移動(向左,向右和向下)。5. 俄羅斯方塊的變換。6. 方塊自動下落與速度的選擇。7. 慢行的判斷與消行。 8. 游戲得分的計算。 9. 游戲結(jié)束判斷。10. 背景音樂及音效。 11. 用戶配置保存。12. 得分保存。 運用的控件和主要對象 在設(shè)計過程中主要用到的控件有:PictureBox控件,MenuStrip控件,Button控件,Label控件,Timer控件,winmm組件,DirectSound等等。 主要實現(xiàn)的功能我們開發(fā)的俄羅斯方塊游戲,主要實現(xiàn)了以下幾種功能: 1. 可以靈活控制方塊在圖形框中運動。2. 游戲過程中方塊可以自由旋轉(zhuǎn)。3. 旋轉(zhuǎn)方塊同時變化方塊顏色。4. 在游戲過程中可以自由調(diào)整游戲速度。5. 當某一行的方塊排列滿時,將自動將這一行方塊消除,然后將上面所有方塊向下移動,可以同時消多行。 6. 游戲的得分支持積分,并且按照公式:得分 = 5+ 10 * (同時消除的行數(shù)1) 這樣,你同一時間消除的行數(shù)越多,你的得分也就越高,當游戲積分到了一定時可以自動升級,這個升級指速度升級。7. 游戲中提供了動聽的音樂。8. 不同的用戶對于鍵位有不同的要求,所以提供了配置保存的功能。這樣就不需要每次游戲都重新配置。9. 保存前十高的分數(shù)。4 系統(tǒng)實現(xiàn) 屏幕信息初始化用來顯示狀態(tài)信息的框 private statusBox。 開始按鈕 private btnStart。 顯示“下一塊”的標簽 private label3。 顯示“分數(shù)”的標簽 private label2。 顯示“等級”的標簽 private label1。 用來畫下一塊方塊的區(qū)域 private panel1。 游戲區(qū)域 private gameArea。 菜單及許多菜單項的實現(xiàn)不一一列舉,最終的的效果如下圖:圖 方塊的實現(xiàn) 在程序中每一個方塊都是一個Block類的實例。Block包括的參數(shù)有方塊的寬度,高度,最左端橫坐標,最上端縱坐標,方塊的數(shù)組表示。其中一共有7中形狀的方塊,以數(shù)組表示為: 11 11 1 11 010 10 01 01 10 1 11 111 11 11 01 10 1 01 10 1方塊的7種形狀分別以數(shù)字06來代表,在構(gòu)造函數(shù)中,隨機生成06中數(shù)字,以此來隨機生成方塊的形狀。用來在界面上顯示方塊的貼圖也以06的數(shù)字來代表,同樣以隨機數(shù)的形式來隨機的現(xiàn)實方塊的顏色。 鍵盤輸入事件處理 因為在界面上有一個按鈕,并且只有一個按鈕,所以該按鈕在通常情況下都是默認為焦點。在這種情況下按下某些鍵,比如空格,就會產(chǎn)生出發(fā)按鈕事件的情況。因此必須重載整個WinForm的ProcessCmdKey來避免這樣的問題。當按向左,向右及旋轉(zhuǎn)按鈕時,只要相應(yīng)的處理方塊的位置或者形狀即可,但是當按向下或者立即下落時,怎需要不同的處理。向下移動時,如果移動到最底部但還未固定,則需要重新設(shè)置計時器間隔時間,從而使自動下落時,底部未固定的方塊到固定的時間相同。如果方塊在最底部而未固定的時候,向下移動,則立即固定。這兩種情況,當方塊固定后,都需要判斷是否消行,并且重新處理分數(shù)和游戲等級及其顯示,如果方塊固定后導(dǎo)致游戲結(jié)束,則需要判斷當前游戲分數(shù)是否進入排名,如果進入排名則需要進入系那個應(yīng)的游戲分數(shù)記錄處理。立即下落時,首先需要判斷是否消行,然后重新處理分數(shù)與登記及其現(xiàn)實。如果該方塊立即下落后導(dǎo)致游戲結(jié)束,則需要判斷當前游戲分數(shù)是否進入排名,如果進入排名則需要進入相應(yīng)的游戲分數(shù)記錄處理。 具體實現(xiàn)如下: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (游戲正在運行) { if (游戲設(shè)置的向左按鈕等于鍵盤按下的按鍵) { if (音效打開) 播放聲音。 方塊向左移動。 重畫游戲區(qū)域。 } else if (游戲設(shè)置的向右按鈕等于鍵盤按下的按鍵) { if (音效打開) 播放聲音。 方塊向右移動。 重畫游戲區(qū)域。 else if(游戲設(shè)置的向下按鈕等于鍵盤按下的按鍵) { if (音效打開) 播放聲音。 停止自動下落的計時器。 if (方塊向下移動后固定) { 重新設(shè)置自動下落計時器的時間間隔。 重新顯示分數(shù)與等級。 } else { if (方塊可以繼續(xù)下移,表示方塊在底部卻未固定) 設(shè)置計時器間隔為當前間隔。 else 設(shè)置計時器間隔為400毫秒。 } 重畫游戲區(qū)域。 重畫顯示下一塊圖形的區(qū)域。 if (游戲結(jié)束) { 判斷是否進排名并保存。 游戲結(jié)束處理。 } else 啟動自動下落計時器。 } else if(游戲設(shè)置的旋轉(zhuǎn)按鈕等于鍵盤按下的按鍵) { if (音效打開) 播放聲音。 處理旋轉(zhuǎn)方塊。
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1