C打砖块源代码(共11页).doc

上传人:飞****2 文档编号:14069882 上传时间:2022-05-02 格式:DOC 页数:11 大小:22KB
返回 下载 相关 举报
C打砖块源代码(共11页).doc_第1页
第1页 / 共11页
C打砖块源代码(共11页).doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《C打砖块源代码(共11页).doc》由会员分享,可在线阅读,更多相关《C打砖块源代码(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1课程设计的具体工作内容:1)弹球区域下方为横板接球,上方为砖块。2)通过键盘的左、右光标键控制接球横版的移动。3)小球落到横板水平线,横板未接注小球,本局结束。 4)小球弹起碰到的砖块自动打碎、消失。5)每隔一定时间(例如5s,可适当调整),砖块上方增加一行,原有砖块下移,砖块增加到横板水平线本局结束结束。6)小球与横板为完全弹性碰撞,不考虑能量损耗。7)每次游戏开始后有三局(或更多,可适当调整),三局都结束游戏重新开始。2. 打砖块小游戏C语言源代码:#include #include #include #include #define R 4 /*球半径*/st

2、ruct box int x;int y;int color;a614;int Keystate;int MouseExist;int MouseButton;int MouseX;int MouseY=400;int dx=1,dy=1; /*计算球的反弹*/int sizex=18,sizey=10; /*box的宽度和长度*/void draw(int x,int y) /* x, y为左上角坐标sizex,sizey为长和宽*/int sizx=sizex-1;int sizy=sizey-1;setcolor(15);/*这里最好用白色*/line(x,y,x+sizx-1,y);l

3、ine(x,y+1,x+sizx-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);putpi

4、xel(x+sizx,y,3);putpixel(x+sizx-1,y+1,3);setfillstyle(1, 7);/*这里最好用灰色,设置填充模式*/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;/*鼠标光标显示*/

5、void MouseOn(int x,int y)draw(x,y);/*隐藏鼠标*/void MouseOff()int x,y;x=MouseX;y=MouseY;setfillstyle(1,0);bar(x,y,x+sizex,y+sizey);/*鼠标是否加载MouseExist:1=加载0=未加载MouseButton:鼠标按键数目 */void MouseLoad()_AX=0x00;geninterrupt(0x33);MouseExist=_AX;MouseButton=_BX;/*鼠标状态值初始化*/void MouseReset()_AX=0x00;geninterrup

6、t(0x33);/*设置鼠标左右边界lx:左边界gx:右边界 */void MouseSetX(int lx,int rx)_CX=lx;_DX=rx;_AX=0x07;geninterrupt(0x33);/*设置鼠标上下边界uy:上边界dy:下边界 */void MouseSetY(int uy,int dy)_CX=uy;_DX=dy;_AX=0x08;geninterrupt(0x33);/*设置鼠标当前位置x:横向坐标y:纵向坐标 */void MouseSetXY(int x,int y)_CX=x;_DX=y;_AX=0x04;geninterrupt(0x33);/*设置鼠标速

7、度(缺省值:vx=8,vy=1)值越大速度越慢 */void MouseSpeed(int vx,int vy)_CX=vx;_DX=vy;_AX=0x0f;geninterrupt(0x33);/*获取鼠标当前位置*/void MouseGetXY()_AX=0x03;geninterrupt(0x33);MouseX=_CX;MouseY=_DX;void MouseStatus()/*鼠标按键情况*/int x;int status;status=0;/*默认鼠标没又移动*/x=MouseX;if(x=MouseX&status=0) /*鼠标没动*/MouseGetXY();if(Mo

8、useX!=x)if(MouseX+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-

9、R) dx*=(-1);dy*=(-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,362); /*设置鼠标移动的范围*/MouseSetY(MouseY,MouseY); /*鼠标只能左右移动*/MouseSetXY(150,MouseY); /*鼠标的初始位置*/MouseOn(MouseX,MouseY); /*第一次显示鼠标*/Move();closegraph();专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁