打砖块游戏c语言执行过程,C语言打砖块游戏的原理!哪位高手指点一下,程序有!...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值