俄羅斯方塊C++課程設(shè)計(jì)報(bào)告_第1頁(yè)
俄羅斯方塊C++課程設(shè)計(jì)報(bào)告_第2頁(yè)
俄羅斯方塊C++課程設(shè)計(jì)報(bào)告_第3頁(yè)
俄羅斯方塊C++課程設(shè)計(jì)報(bào)告_第4頁(yè)
俄羅斯方塊C++課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

3、流程圖:、游戲設(shè)計(jì)概述從整體上而言,在該游戲可設(shè)計(jì)一個(gè)方塊類,其中包括對(duì)方塊的信息描述(如ID)、方塊的操作(如:旋轉(zhuǎn)、下沉)。再設(shè)計(jì)一個(gè)控制類,實(shí)現(xiàn)各種控制(如:獲取控制信號(hào),分發(fā)控制信號(hào))。另定義一個(gè)游戲區(qū)類,用以處理游戲區(qū)繪制等內(nèi)容??驁D如下:方塊類(GAME_BLOCK游戲區(qū)類(WindowPrivate:BLOCKINFOg_CurBlock;Private:無(wú)(新方塊)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)/如果方塊的固定位置超出高度,結(jié)束游戲GameOver();return;elseg_World+i%4-i/4=1;/檢查是否需要消掉行,并標(biāo)記BYTEremove=0;/低4位用來(lái)標(biāo)記方塊涉及的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)/如果產(chǎn)生整行消除/延時(shí)300毫秒Sleep(300);/擦掉剛才標(biāo)記的行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);/產(chǎn)生新方塊NewBlock();四、測(cè)試結(jié)果。程序完成后運(yùn)行如下,達(dá)到預(yù)期結(jié)果,運(yùn)行效果良好。成功地完成了方塊的顯示、旋轉(zhuǎn)、消行功能,游戲可玩性強(qiáng),且具有封裝性、通用性、容錯(cuò)性。五、實(shí)驗(yàn)總結(jié)。本次C+解程設(shè)計(jì)前期準(zhǔn)備階段,設(shè)想一些構(gòu)想和主要任務(wù);后期則是具體功能的實(shí)現(xiàn)。這次設(shè)計(jì)中我遇到了不少困難,本來(lái)設(shè)想實(shí)現(xiàn)雙人版對(duì)戰(zhàn),美化界面和增加背景音樂(lè)等功能,可是由于時(shí)間的短促,最終沒(méi)能實(shí)現(xiàn),心里不免有些遺憾,在實(shí)現(xiàn)類的封裝和類的繼承和多態(tài)性時(shí),也遇到了不少問(wèn)題,通過(guò)大家的一起探討和分析,問(wèn)題最終一個(gè)個(gè)迎刃而

溫馨提示

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

評(píng)論

0/150

提交評(píng)論