C打磚塊源代碼(同名2090)(共11頁)_第1頁
C打磚塊源代碼(同名2090)(共11頁)_第2頁
C打磚塊源代碼(同名2090)(共11頁)_第3頁
C打磚塊源代碼(同名2090)(共11頁)_第4頁
C打磚塊源代碼(同名2090)(共11頁)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1課程設(shè)計(jì)的具體工作內(nèi)容:1)彈球區(qū)域下方為橫板接球,上方為磚塊。2)通過鍵盤的左、右光標(biāo)鍵控制接球橫版的移動(dòng)。3)小球落到橫板水平線,橫板未接注小球,本局結(jié)束。 4)小球彈起碰到的磚塊自動(dòng)打碎、消失。5)每隔一定時(shí)間(例如5s,可適當(dāng)調(diào)整),磚塊上方增加一行,原有磚塊下移,磚塊增加到橫板水平線本局結(jié)束結(jié)束。6)小球與橫板為完全彈性碰撞,不考慮能量損耗。7)每次游戲開始后有三局(或更多,可適當(dāng)調(diào)整),三局都結(jié)束游戲重新開始。2. 打磚塊小游戲C語言源代碼:#include #include #include #include #define R 4 /*球半徑*/struct box int

2、x;int y;int color;a614;int Keystate;int MouseExist;int MouseButton;int MouseX;int MouseY=400;int dx=1,dy=1; /*計(jì)算球的反彈*/int sizex=18,sizey=10; /*box的寬度和長度*/void draw(int x,int y) /* x, y為左上角坐標(biāo)sizex,sizey為長和寬*/int sizx=sizex-1;int sizy=sizey-1;setcolor(15);/*這里最好用白色*/line(x,y,x+sizx-1,y);line(x,y+1,x+s

3、izx-2,y+1);line(x,y,x,y+sizy-1);line(x+1,y,x+1,y+sizy-2);setcolor(8);/*這里最好用深灰色*/line(x+1,y+sizy,x+sizx,y+sizy);line(x+2,y+sizy-1,x+sizx,y+sizy-1);line(x+sizx-1,y+1,x+sizx-1,y+sizy);line(x+sizx,y+2,x+sizx,y+sizy);setcolor(7);/*這里最好用灰色*/putpixel(x,y+sizy,3);putpixel(x+1,y+sizy-1,3);putpixel(x+sizx,y,

4、3);putpixel(x+sizx-1,y+1,3);setfillstyle(1, 7);/*這里最好用灰色,設(shè)置填充模式*/bar(x+2,y+2,x+sizx-2,y+sizy-2);void picture() /*畫box*/ int i,j;setcolor(15);rectangle(99,49,413,451);for(i=0;i6;i+)for(j=0;j14;j+) aij.color=0;aij.x=104+j*22;aij.y=54+i*14;draw(104+j*22,54+i*14);sizex=50,sizey=5;/*鼠標(biāo)光標(biāo)顯示*/void MouseOn(

5、int x,int y)draw(x,y);/*隱藏鼠標(biāo)*/void MouseOff()int x,y;x=MouseX;y=MouseY;setfillstyle(1,0);bar(x,y,x+sizex,y+sizey);/*鼠標(biāo)是否加載MouseExist:1=加載0=未加載MouseButton:鼠標(biāo)按鍵數(shù)目 */void MouseLoad()_AX=0x00;geninterrupt(0x33);MouseExist=_AX;MouseButton=_BX;/*鼠標(biāo)狀態(tài)值初始化*/void MouseReset()_AX=0x00;geninterrupt(0x33);/*設(shè)置鼠

6、標(biāo)左右邊界lx:左邊界gx:右邊界 */void MouseSetX(int lx,int rx)_CX=lx;_DX=rx;_AX=0x07;geninterrupt(0x33);/*設(shè)置鼠標(biāo)上下邊界uy:上邊界dy:下邊界 */void MouseSetY(int uy,int dy)_CX=uy;_DX=dy;_AX=0x08;geninterrupt(0x33);/*設(shè)置鼠標(biāo)當(dāng)前位置x:橫向坐標(biāo)y:縱向坐標(biāo) */void MouseSetXY(int x,int y)_CX=x;_DX=y;_AX=0x04;geninterrupt(0x33);/*設(shè)置鼠標(biāo)速度(缺省值:vx=8,vy

7、=1)值越大速度越慢 */void MouseSpeed(int vx,int vy)_CX=vx;_DX=vy;_AX=0x0f;geninterrupt(0x33);/*獲取鼠標(biāo)當(dāng)前位置*/void MouseGetXY()_AX=0x03;geninterrupt(0x33);MouseX=_CX;MouseY=_DX;void MouseStatus()/*鼠標(biāo)按鍵情況*/int x;int status;status=0;/*默認(rèn)鼠標(biāo)沒又移動(dòng)*/x=MouseX;if(x=MouseX&status=0) /*鼠標(biāo)沒動(dòng)*/MouseGetXY();if(MouseX!=x)if(Mo

8、useX+50=105 & ballX=408)break;while(kbhit)MouseStatus();if(ballY=(413-R)|ballX=(108-R) /*碰左右反彈*/dx*=(-1);setcolor(YELLOW);circle(ballX+=dx,ballY-=dy,R-1);delay(2500);setcolor(0);circle(ballX,ballY,R-1);for(i=0;i6;i+)for(j=0;j14;j+) /*判斷是否傳記撞擊box*/if(t=aij.x &ballX=aij.y & ballY=(MouseY-R) dx*=(-1);d

9、y*=(-1); /*原路返回*/if(ballXMouseX & ballX=(MouseY-R)dy*=(-1);if(t=84) sleep(1);cleardevice();setcolor(RED);settextstyle(0,0,4);outtextxy(100,200,Win);sleep(1);break;if(ballYMouseY) sleep(1);cleardevice();setcolor(RED);settextstyle(0,0,4);outtextxy(100,200,Game Over);sleep(1);break;void main()int gd=DETECT,gm;initgraph(&gd,&gm,c:tc);picture();MouseSetX(100,36

溫馨提示

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

最新文檔

評論

0/150

提交評論