C语言小游戏源代码《打砖块》Word下载.docx
《C语言小游戏源代码《打砖块》Word下载.docx》由会员分享,可在线阅读,更多相关《C语言小游戏源代码《打砖块》Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
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);
outtextxy(120,240,"
Pressanykeytocontinue"
}
/*定义退出界面函数*/
intquitwindow()
chars[100];
/*声明用于存放字符串的数组*/
setviewport(100,150,540,420,1);
setcolor(YELLOW);
rectangle(0,0,439,279);
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;
driver,&
mode,"
setbkcolor(10);
*/
cleardevice();
/*
clearviewport();
/*清除现行图形窗口内容*/
b=t+6;
r=l+60;
setcolor
(1);
rectangle(0,0,639,479);
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;
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<
r)
phrase=0;
}{
if((x-r1<
=r||x+r1<
=r)&
&
x+r1>
=l)
if(y<
t)
phrase=1;
if(y+r1>
=t&
phrase==1)
{dy=-dy;
y=t-1-r1;
if(off==0)
continue;
for(i=0;
i++)/*
for(j=0;
此循环用于判断、控制方砖阵列的撞击、擦除*/
if((x+r1<
=right[j]&
=left[j])||(x-r1<
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);
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"
if((y+r1>
=bottom[i])||(y-r1>
=bottom[i]))
if((x+r1>
=left[j]&
x+r1<
right[j])||(x-r1<
x-r1>
left[j]))
{continue;
floodfill(left[j]+1,top[i]+1,10);
dx=-dx;
639)/*控制小球的弹射范围*/
{dx=-dx;
x=638-r1;
if(x<
=r1)
x=r1+1;
=479)
{off=0;
quitwindow();
break;
y=r1+1;
if(score==560)
}setcolor(6);
circle(x,y,r1);
setfillstyle(SOLID_FILL,14);
floodfill(x,y,6);
delay(1000);
floodfill(x,y,10);
a=getch();
floodfill(l+2,t+2,10);
if(a==77&
l<
=565)/*键盘控制设定*/
{dl=20;
l=l+dl;
if(a==75&
l>
=15)
{dl=-20;
if(a=='
y'
on==1)
n'
if(a==27)
{quitwindow();
off=0;
floodfill(l+5,t+5,4);
delay(100);
on==1)/*是否退出游戏*/
{break;
closegraph();