C语言小游戏源代码《打砖块》.docx

上传人:b****5 文档编号:6792903 上传时间:2023-01-10 格式:DOCX 页数:7 大小:15.95KB
下载 相关 举报
C语言小游戏源代码《打砖块》.docx_第1页
第1页 / 共7页
C语言小游戏源代码《打砖块》.docx_第2页
第2页 / 共7页
C语言小游戏源代码《打砖块》.docx_第3页
第3页 / 共7页
C语言小游戏源代码《打砖块》.docx_第4页
第4页 / 共7页
C语言小游戏源代码《打砖块》.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

C语言小游戏源代码《打砖块》.docx

《C语言小游戏源代码《打砖块》.docx》由会员分享,可在线阅读,更多相关《C语言小游戏源代码《打砖块》.docx(7页珍藏版)》请在冰豆网上搜索。

C语言小游戏源代码《打砖块》.docx

C语言小游戏源代码《打砖块》

C语言小游戏源代码《打砖块》

#include"graphics.h"

#include"stdio.h"

#include"conio.h"/*所需的头文件*/

/*

inton;/*声明具有开关作用的全局变量*/staticintscore;

声明静态的记分器变量*/

/*定义开始界面函数*/

intopen()

{

setviewport(100,100,500,380,1);/*设置图形窗口区域*/

setcolor(4);/*设置作图色*/

rectangle(0,0,399,279);/*以矩形填充所设的图形窗口区域*/

setfillstyle(SOLID_FILL,7);/*设置填充方式*/

floodfill(50,50,4);/*设置填充范围*/

setcolor(8);

settextstyle(0,0,9);/*文本字体设置*/

outtextxy(90,80,"BALL");/*输出文本内容*/

settextstyle(0,0,1);

outtextxy(110,180,"version1.0");

outtextxy(110,190,"madebyddt");

setcolor(128);

settextstyle(0,0,1);

outtextxy(120,240,"Pressanykeytocontinue");}

/*定义退出界面函数*/

intquitwindow()

{

chars[100];/*声明用于存放字符串的数组*/

setviewport(100,150,540,420,1);

setcolor(YELLOW);

rectangle(0,0,439,279);

setfillstyle(SOLID_FILL,7);

floodfill(50,50,14);

setcolor(12);

settextstyle(0,0,8);

outtextxy(120,80,"End");

settextstyle(0,0,2);

outtextxy(120,200,"quit?

Y/N");

sprintf(s,"Yourscoreis:

%d",score);/*格式化输出记分器的值*/

outtextxy(120,180,s);

on=1;/*初始化开关变量*/

}

/*主函数*/

main()

{

intgdriver,gmode;

gdriver=DETECT;/*设置图形适配器*/

gmode=VGA;/*设置图形模式*/

registerbgidriver(EGAVGA_driver);/*建立独立图形运行程序*/

initgraph(&gdriver,&gmode,"");/*图形系统初试化*/setbkcolor(14);

open();/*调用开始界面函数*/

getch();/*暂停*/

while

(1)/*此大循环体控制游戏的反复重新进行*/

{

intdriver,mode,l=320,t=400,r,a,b,dl=5,n,x=200,y=400,r1=10,dx=-

2,dy=-2;/*初始化小

球相关参数*/

int

left[100],top[100],right[100],bottom[100],i,j,k,off=1,m,num[100][100];/*

方砖阵列

相关参数*/

staticintpp;

staticintphrase;/*一系列起开关作用的变量*/intoop=15;

pp=1;

score=0;

driver=DETECT;

mode=VGA;

registerbgidriver(EGAVGA_driver);

initgraph(&driver,&mode,"");

setbkcolor(10);

*/

cleardevice();/*

clearviewport();/*清除现行图形窗口内容*/

b=t+6;

r=l+60;

setcolor

(1);

rectangle(0,0,639,479);

setcolor(4);

rectangle(l,t,r,b);

setfillstyle(SOLID_FILL,1);

floodfill(l+2,t+2,4);

for(i=0,k=0;i<=6;i++)/*此循环绘制方砖阵列*/

{

top[i]=k;

bottom[i]=top[i]+20;

k=k+21;

oop--;

for(j=0,m=0;j<=7;j++)

{

left[j]=m;

right[j]=left[j]+80;

m=m+81;

setcolor(4);

rectangle(left[j],top[i],right[j],bottom[i]);

setfillstyle(SOLID_FILL,j+oop);floodfill(left[j]+1,top[i]+1,4);

num[i][j]=pp++;

}

}

while

(1)/*此循环控制整个动画*/

{

while(!

kbhit())

{

x=x+dx;/*小球运动的圆心变量控制*/

y=y+dy;

if(x+r1>r||x+r1

phrase=0;}{

if((x-r1<=r||x+r1<=r)&&x+r1>=l)

{

if(y

phrase=1;

if(y+r1>=t&&phrase==1)

{dy=-dy;y=t-1-r1;}

}

if(off==0)

continue;

 

for(i=0;i<=6;i++)/*

for(j=0;j<=7;j++)

此循环用于判断、控制方砖阵列的撞击、擦除*/

 

if((x+r1<=right[j]&&x+r1>=left[j])||(x-r1<=right[j]&&x-r1>=left[j]))

{

if((y-r1>top[i]&&y-

r1<=bottom[i])||(y+r1>=top[i]&&y+r1<=bottom[i]))

{

if(num[i][j]==0)

{continue;}

setcolor(10);

rectangle(left[j],top[i],right[j],bottom[i]);

setfillstyle(SOLID_FILL,10);

floodfill(left[j]+1,top[i]+1,10);dy=-dy;

num[i][j]=0;

score=score+10;

printf("%d\b\b\b",score);

}

}

if((y+r1>=top[i]&&y+r1<=bottom[i])||(y-r1>=top[i]&&y-

r1<=bottom[i]))

{

if((x+r1>=left[j]&&x+r1left[j]))

{

if(num[i][j]==0)

{continue;}

setcolor(10);

rectangle(left[j],top[i],right[j],bottom[i]);

setfillstyle(SOLID_FILL,10);floodfill(left[j]+1,top[i]+1,10);

dx=-dx;

num[i][j]=0;

score=score+10;

printf("%d\b\b\b",score);

}

}

}

if(x+r1>639)/*控制小球的弹射范围*/

{dx=-dx;x=638-r1;}

if(x<=r1)

{dx=-dx;x=r1+1;}

if(y+r1>=479)

{off=0;quitwindow();break;}

if(y<=r1)

{dy=-dy;y=r1+1;}

if(score==560)

{off=0;quitwindow();break;}setcolor(6);

circle(x,y,r1);

setfillstyle(SOLID_FILL,14);

floodfill(x,y,6);

delay(1000);

setcolor(10);

circle(x,y,r1);

setfillstyle(SOLID_FILL,10);

floodfill(x,y,10);}

a=getch();

setcolor(10);

rectangle(l,t,r,b);

setfillstyle(SOLID_FILL,10);

floodfill(l+2,t+2,10);

if(a==77&&l<=565)/*键盘控制设定*/

{dl=20;l=l+dl;}

if(a==75&&l>=15)

{dl=-20;l=l+dl;}

if(a=='y'&&on==1)

break;

if(a=='n'&&on==1)

break;

if(a==27)

{quitwindow();off=0;}

r=l+60;

setcolor(4);

rectangle(l,t,r,b);

setfillstyle(SOLID_FILL,1);

floodfill(l+5,t+5,4);

delay(100);

}

if(a=='y'&&on==1)/*是否退出游戏*/

{break;}

if(a=='n'&&on==1)

{continue;}

}

closegraph();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1