




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計報告課程名稱:面向對象程序設計C++設計題目:俄羅斯方塊游戲專業:計算機科學與技術姓名:學號:指導教師:李曉虹2015年12月25日目錄TOC\o"1-3"\h\u4302一、需求分析 3128041.1系統概述 3169931.2游戲特色 3176021.3功能需求 313541二、總體設計 424562.1系統模塊 4151892.2系統業務處理流程 530988三、詳細設計 5245243.1磚塊預顯示 5168463.2分數統計 6141333.3磚塊移動和游戲暫停的實現 7108003.4播放背景音樂 8100773.5游戲設置與幫助 8323613.6背景位圖的插入 9232323.7磚塊三維化 10311603.8俄羅斯方塊雙人版的實現 1014213四、測試與結果 11189234.1整個游戲運行界面圖 1170424.2游戲設置與幫助頁面圖 122007五、總結 13一、需求分析1.1系統概述《俄羅斯方塊》玩家通過鍵盤控制方塊的形狀樣式和速度,組成相連的1行或1行以上方塊會自動消除,方塊消除到一定數量后會得到一定的分數,玩家可以升級,從而難度加大,也就是速度加快,玩家還可以通過消除一組方塊,使得到的分數翻倍等到更多的分數,造成更強的分數效果。游戲中玩家可以和其他玩家1V1對戰。1.2游戲特色《俄羅斯方塊》是基于pc休閑平臺上的單機對戰休閑游戲,這就要求游戲本身不能過于龐大復雜,需要考慮到單機對戰的靈活性和多變性。在游戲中通過對方塊速度的變,能夠使玩家不僅僅通過自己消除方塊來獲勝,還可以等到更多的分數,因此獲得勝利。《俄羅斯方塊》游戲在傳統的俄羅斯方塊當中加入了新鮮的游戲元素,例如可愛的方塊的顏色,絢目的消除方塊特效顯示,在游戲本身的簡單耐玩的基礎上,大大豐富了游戲的觀賞性和趣味性,令玩家有了完全的游戲體驗,充分享受游戲帶來的樂趣。1.3功能需求(1)實現雙人俄羅斯方塊(2)隱藏菜單欄、工具欄、狀態欄(3)實現難度可以選擇(4)實現下一個磚塊預測功能(5)實現總分統計功能,和每步消除所得分數顯示(6)實現下、左、右、旋轉、暫停功能(7)實現背景音樂播放功能(8)添加游戲幫助菜單(9)實現磚塊三維化(10)實現雙緩沖避免屏幕閃爍(11)設置窗口大小,禁用最大化按鈕,禁止鼠標拖動改變窗口大小二、總體設計2.1系統模塊圖2-12.2系統業務處理流程圖2-2三、詳細設計3.1磚塊預顯示磚塊預顯示的原理就是在第一次生成磚塊的時候,一次生成2個磚塊。然后將第2個磚塊預顯示,第1個磚塊掉下來。接著將預顯示的磚塊掉下來,新隨機生成的磚塊預顯示。這樣的話,我們用flag1標記是不是第一次產生磚塊3.2分數統計這里實現了,顯示每次消除所得的分數和游戲總共所得的分數。由于,我們有一個返回消除了多少行的函數removeFullLines(),所以我們將這個返回值乘以積分規則里面的值,就實現了顯示每次消除所得的分數。然后游戲總分就是累加每次得到的分數值。因為磚塊最多就是消除4行,所以這里用個switch()語句來實現。m_num2是一個成員變量,保存的就是removeFullLines()的返回值。 3.3磚塊移動和游戲暫停的實現這里原本是需要響應鍵盤按下事件的,所以需要添加WM_KEYDOWN消息響應。然后將函數傳進來的nChar,也就是你按的鍵盤值,和你游戲中設定的移動按鍵比較。從而執行相應的操作。同時這里也要熟悉一下虛擬按鍵碼。
但是由于我們添加了位圖按鈕,導致鍵盤按鍵事件響應不了,我們這里就重載了PreTranslateMessage函數,在這個函數里面攔截按鍵消息,從而響應。
①一鍵下落:這里用了一個循環,直到下落到磚塊與邊界或者其他磚塊產生沖突才停止下落。
②空格暫停:暫停的原理就是關閉定時器,KillTimer(1);//關閉定時器
③空格繼續:SetTimer(0,difficulty,NULL);//繼續恢復原來的下落速度3.4播放背景音樂添加頭文件:#include<mmsystem.h>
//播放音樂。然后在工程->設置->鏈接->對象/庫模塊里面添加winmm.lib
然后就將已經準備好的.wav格式的音樂引入VC中。這里可以自己先去下載.mp3格式的音樂,然后用格式工廠轉換一下格式,我就是這么干的。3.5游戲設置與幫助這里就是調用了一個對話框,用來做一些解釋說明。實現步驟:
①插入一個對話框
②給對話框關聯一個類
③在需要彈出對話框的函數里面定義一個對話框的對象,然后DoModal().彈出模態對話框。靜態文本超鏈接顏色和鼠標樣式:由于靜態文本是不能響應鼠標點擊事件的,所以我們要現將靜態文本的ID改掉,如:IDC_STATIC_BK然后在樣式中將通知勾選上。這樣就可以響應鼠標點擊事件了。
接著就是要實現鼠標移動到超鏈接上面顯示一個手的形狀,這里我們需要載入一個手型的光標。本來是載入這個:IDC_HAND就可以了,但是當我載入它的時候,編譯,提示IDC_HAND未定義。查了一下原來是版本的問題,不支持手型的。后來谷歌上找到了一個可以載入手型的方法:
m_hCursor=::LoadCursor(NULL,MAKEINTRESOURCE(32649));
就是用一個全局的載入光標函數來載入。光標載入好之后,添加一個鼠標移動事件的響應,當鼠標移動到指定區域,顯示手型光標。
3.6背景位圖的插入這個就是界面美化神器了,就是因為這張背景整個游戲才變得比原來的美觀了幾倍。第一次做的單文檔,白色背景,是在是太不友好了。這個背景圖片是我從4399上面截圖下來的,然后用ps制作了一下,使其符合我的要求。3.7磚塊三維化這里用到函數Draw3dRect()實現磚塊三維化,其中需要3個參數參數:
1.矩形區域;參數2:RGB()
參數3:RGB():其中后面兩個參數,由下面這兩個函數返回。具體代碼如下:3.8俄羅斯方塊雙人版的實現其實實現雙人版的很簡單,就是將FillRect()填充區域右移一定距離就實現了雙人版的。當然,是在你將第二個游戲的代碼也編寫好的前提下,不然只是把左邊玩家的界面再顯示一次,那沒得意思。同理,預顯示也就是這么實現的,就是調整了一下磚塊顯示的位置。四、測試與結果4.1整個游戲運行界面圖其中Next是預顯示,Point是每次固定塊后所得的分數,XO用于播放/暫停背景音樂,a,b,c用于選擇游戲難度。START點擊開始游戲。下面還有個總分統計欄。圖4-14.2游戲設置與幫助頁面圖 圖4-2五、總結這次編寫雙人版俄羅斯方塊,主要參照了VC++實驗指導書,界面主要就是插入了一個位圖背景,圖是從4399上面截圖下來的,然后ps成自己需要的大小并轉化成.bmp格式。插入后,再就是在適當的地方顯示磚塊和分數統計,這樣一個界面就做好了。界面上的按鈕,我是用位圖按鈕CBitmapButton實現的,這里有個小插曲,就是4張圖片的大小問題,我本來的意思是想讓鼠標點擊的時候就顯示一張小一點的圖片,從而達到按鈕的效果,所以我就做了4張大小不同的位圖,導致了后來的白邊的產生。另外,由于添加了位圖按鈕導致了按鍵事件WM_KEYDOWN和鼠標點擊事件WM_LBUTTONDOWN不能響應,我也不知道是為什么。好在MFC中消息都要經過翻譯后再發送,所以我就在PreTranslateMessage實現了按鍵和鼠標點擊事件,開始不知道pMsg->pt傳送進來的是相對于桌面的坐標。另外還有一個問題就是關于CRect的問題,如:我定義了一個CRectrect(10,10,100,100);然后我將rect.top,rect.left…轉換成CString類型,然后pDC->TextOut輸出出來確是(0,0,99,99)不明白這是什么原因。總之,這次小游戲的編寫,讓我自己學到了不少的東西,對MFC的操作也更加熟練了。基于C8051F單片機直流電動機反饋控制系統的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現的供暖系統最佳啟停自校正(STR)調節器單片機控制的二級倒立擺系統的研究基于增強型51系列單片機的TCP/IP協議棧的實現基于單片機的蓄電池自動監測系統基于32位嵌入式單片機系統的圖像采集與處理技術的研究基于單片機的作物營養診斷專家系統的研究基于單片機的交流伺服電機運動控制系統研究與開發基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統研究基于C8051F040單片機的嵌入式系統開發基于單片機的液壓動力系統狀態監測儀開發模糊Smith智能控制方法的研究及其單片機實現一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數控系統的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環走絲方式研究基于單片機的機電產品控制系統開發基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統單片機系統軟件構件開發的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統的研制基于單片機的數字磁通門傳感器基于單片機的旋轉變壓器-數字轉換器的研究基于單片機的光纖Bragg光柵解調系統的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現基于單片機的電液伺服控制系統用于單片機系統的MMC卡文件系統研制基于單片機的時控和計數系統性能優化的研究基于單片機和CPLD的粗光柵位移測量系統研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數據采集系統基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數控改造基于單片機的溫度智能控制系統的設計與實現基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協議轉換器基于單片機和DSP的變壓器油色譜在線監測技術研究基于單片機的膛壁溫度報警系統設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監測系統基于單片機網絡的振動信號的采集系統基于單片機的大容量數據存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現基于AT89S52單片機的通用數據采集系統基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統基于單片機的控制系統在PLC虛擬教學實驗中的應用研究基于單片機系統的網絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統設計與研究基于單片機的模糊控制器在工業電阻爐上的應用研究基于雙單片機沖床數控系統的研究與開發基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統研究基于TCP/IP協議的單片機與Internet互聯的研究與實現變頻調速液壓電梯單片機控制器的研究基于單片機γ-免疫計數器自動換樣功能的研究與實現基于單片機的倒立擺控制系統設計與實現單片機嵌入式以太網防盜報警系統基于51單片機的嵌入式Internet系統的設計與實現單片機監測系統在擠壓機上的應用MSP430單片機在智能水表系統上的研究與應用基于單片機的嵌入式系統中TCP/IP協議棧的實現與應用單片機在高樓恒壓供水系統中的應用基于ATmega16單片機的流量控制器的開發基于MSP430單片機的遠程抄表系統及智能網絡水表的設計基于MSP430單片機具有數據存儲與回放功能的嵌入式電子血壓計的設計基于單片機的氨分解率檢測系統的研究與開發鍋爐的單片機控制系統基于單片機控制的電磁振動式播種控制系統的設計基于單片機技術的WDR-01型聚氨酯導熱系數測試儀的研制一種R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息系統監理師2025年考前沖刺試題及答案
- 稀土金屬加工質量改進項目策劃與實施技巧考核試卷
- 微生物肥料在促進作物對養分脅迫適應性的生理響應研究考核試卷
- 釀造企業產品創新考核試卷
- 管理學與行政結合試題及答案
- 嵌入式系統開發的商業機遇試題及答案
- 行政組織的變革策略探討試題及答案
- 全面關注公路工程考試的發展趨勢試題及答案
- 信息系統監理師高級課程介紹試題及答案
- 嵌入式系統高效遠程控制試題及答案
- 2024年湖北省中考地理生物試卷(含答案)
- 建設工程質量成本管理課件
- 巴蜀文化(課堂PPT)課件
- 質量部組織架構
- 工學結合一體化課程教學設計的編寫(課堂PPT)
- 電氣裝置安裝工程接地裝置施工及驗收規范——50169-2006
- 水電站自動化運行專業術語
- 大學物理機械振動和機械波(課堂PPT)
- 四大管道標準學習20130814-滄州
- T∕CECC 001-2021 霧化電子煙裝置通用技術規范
- 論文新建成品油庫設計
評論
0/150
提交評論