俄羅斯方塊C++課程設計報告_第1頁
俄羅斯方塊C++課程設計報告_第2頁
俄羅斯方塊C++課程設計報告_第3頁
俄羅斯方塊C++課程設計報告_第4頁
俄羅斯方塊C++課程設計報告_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告題目:基于C+我羅斯方塊學院:專業(yè):學號:姓名:二。一三年十二月經典小游戲設計-俄羅斯方塊1、 需求分析。、游戲需求隨機給出不同的形狀(長條形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充給定的區(qū)域,若填滿一條便消掉,若在游戲中各形狀填滿了給定區(qū)域,為輸者,彈出相應提示。、游戲界面需求良好的用戶界面,有關信息顯示(如操作方法、等級等)。讓方塊在一定的區(qū)域內運動和變形,該區(qū)域用一種顏色表明,即用一種顏色作為背景,本游戲的背景設為黑色。還需用另一種顏色把黑色圍起來,寬度適中,要實現(xiàn)美感。而不同的方塊用不同的著色表示,使游戲界面更加清晰、有條理。消層時采用一定的時間延遲,增加

2、視覺消行的感官效果。、游戲方塊需求良好的方塊形狀設計,繪制七種常見的基本圖形(長條形、Z字形、反Z形、田字形、L字形、反L形、T字型)以及另外本程序另外加入的點形方塊,各個方塊要能實現(xiàn)它的變形,可設為順時針或逆時針變形,一般為逆時針。為體現(xiàn)游戲的趣味性和擴展性,本游戲象征性的增加了點形方塊,其他更多形狀的方塊可用類似方法增加。、游戲控制的需求游戲控分為多個方面,包括畫面繪制,控制命令的獲取,控制命令的分配、控制命令的處理,方塊的繪制,方塊的移動,方塊的旋轉,方塊下落和消層以及計分等。對各個命令的合理處理和綜合控制十分重要,一旦出錯可能導致整個程序的崩潰,因此需要小心設計。2、 系統(tǒng)設計。、程序

3、流程圖:、游戲設計概述從整體上而言,在該游戲可設計一個方塊類,其中包括對方塊的信息描述(如ID)、方塊的操作(如:旋轉、下沉)。再設計一個控制類,實現(xiàn)各種控制(如:獲取控制信號,分發(fā)控制信號)。另定義一個游戲區(qū)類,用以處理游戲區(qū)繪制等內容。框圖如下:方塊類(GAME_BLOCK游戲區(qū)類(WindowPrivate:BLOCKINFOg_CurBlock;Private:無(新方塊)BLOCKINFOg_NextBlock;(下一方塊)Public:VoidInitWindow()Public:GAME_BLOCK()GAME_BLOCK()voidNewBlock();巾while(c&

4、;0xF)=0);c>>=4;ir;intx,y;for(inti=0;i<16;i+,b<<=1)if(b&0x8000)x=+i%4;y=-i/4;if(y<HEIGHT)DrawUnit(x,y,g_Blocks口.color,_draw);ir口;intx,y;for(inti=0;i<16;i+,b<<=1)if(b&0x8000)x=+i%4;y=-i/4;if(x<0)|(x>=WIDTH)|(y<0)returnfalse;if(y<HEIGHT)&&(g_Worldx

5、y)returnfalse;returntrue;ir;for(i=0;i<16;i+,b<<=1)if(b&0x8000)if-i/4>=HEIGHT)/如果方塊的固定位置超出高度,結束游戲GameOver();return;elseg_World+i%4-i/4=1;/檢查是否需要消掉行,并標記BYTEremove=0;/低4位用來標記方塊涉及的4行是否有消除行為for(y=;y>=max-3,0);y-)i=0;for(x=0;x<WIDTH;x+)if(g_Worldxy=1)i+;if(i=WIDTH)remove|=(1<<-

6、y);setfillcolor(LIGHTGREEN);setlinecolor(LIGHTGREEN);setfillstyle(BS_HATCHED,HS_DIAGCROSS);fillrectangle(0,(HEIGHT-y-1)*UNIT+UNIT/2-5,WIDTH*UNIT-1,(HEIGHT-y-1)*UNIT+UNIT/2+5);setfillstyle(BS_SOLID);if(remove)/如果產生整行消除/延時300毫秒Sleep(300);/擦掉剛才標記的行IMAGEimg;for(i=0;i<4;i+,remove>>=1)if(remove&a

7、mp;1)for(y=-i+1;y<HEIGHT;y+)for(x=0;x<WIDTH;x+)g_Worldxy-1=g_Worldxy;g_Worldxy=0;getimage(&img,0,0,WIDTH*UNIT,(HEIGHT-i+1)*UNIT);putimage(0,UNIT,&img);score+;outtextxy(50,150,_T(score);/產生新方塊NewBlock();四、測試結果。程序完成后運行如下,達到預期結果,運行效果良好。成功地完成了方塊的顯示、旋轉、消行功能,游戲可玩性強,且具有封裝性、通用性、容錯性。五、實驗總結。本次C+解程設計前期準備階段,設想一些構想和主要任務;后期則是具體功能的實現(xiàn)。這次設計中我遇到了不少困難,本來設想實現(xiàn)雙人版對戰(zhàn),美化界面和增加背景音樂等功能,可是由于時間的短促,最終沒能實現(xiàn),心里不免有些遺憾,在實現(xiàn)類的封裝和類的繼承和多態(tài)性時,也遇到了不少問題,通過大家的一起探討和分析,問題最終一個個迎刃而

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論