小游戏Dl
所以更难玩了。
#包含“graphics.h”
#包含“stdio.h”
#include "conio.h" /*必需的头文件*/
int on/*用切换函数声明一个全局变量*/
静态int分数;/*声明静态计分器变量*/
/*定义启动接口函数*/
int open()
{
setviewport(100,100,500,380,1);/*设置图形窗口区域*/
set color(4);/*设置绘图颜色*/
矩形(0,0,399,279);/*用矩形填充设定的图形窗口区域*/
setfillstyle(SOLID_FILL,7);/*设置填充方法*/
洪水填充(50,50,4);/*设置填充范围*/
set color(8);
settextstyle(0,0,9);/*文本字体设置*/
outtextxy(90,80,“球”);/*输出文本内容*/
settextstyle(0,0,1);
outtextxy(110,180,“版本1.0”);
outtextxy(110,190,“滴滴涕制造”);
set color(128);
settextstyle(0,0,1);
outtextxy(120,240,"按任意键继续……");
}
/*定义退出接口函数*/
int quitwindow()
{
char s[100];/*声明用于存储字符串的数组*/
setviewport(100,150,540,420,1);
setcolor(黄色);
矩形(0,0,439,279);
setfillstyle(SOLID_FILL,7);
漫填(50,50,14);
set color(12);
settextstyle(0,0,8);
outtextxy(120,80," End ");
settextstyle(0,0,2);
outtextxy(120,200,“退出?y/N”);
sprintf(s,“你的分数是:%d”,分数);/*打印格式计分器的值*/
outtextxy(120,180,s);
on = 1;/*初始化开关变量*/
}
/*主函数*/
主()
{
int gdriver,gmode
gdriver = DETECT/*设置图形适配器*/
gmode = 0;/*设置图形模式*/
registerbgidriver(EGA VGA _ driver);/*注册BGI驱动程序后,它可以在没有支持的情况下运行。BGI文件*/
init graph(& amp;g driver & amp;gmode,“”;
setbkcolor(14);
open();/*调用启动接口函数*/
getch();/*暂停*/
而(1) /*这个大循环控制着游戏的重复进行*/
{
int驱动,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];/*方砖阵列的相关参数*/
静态int pp
静态int短语;/*一系列充当开关的变量*/
int OOP = 15;
PP = 1;
得分= 0;
驱动=检测;
mode = VGA
registerbgidriver(EGA VGA _ driver);
init graph(& amp;司机& amp模式,“”;
setbkcolor(10);
clear device();/*在图形状态下清除屏幕*/
clear viewport();/*清除当前图形窗口的内容*/
b = t+6;
r = l+60;
set color(1);
矩形(0,0,639,479);
set color(4);
矩形(l,t,r,b);
setfillstyle(SOLID_FILL,1);
洪水填充(l+2,t+2,4);
for(i=0,k = 0;我& lt=6;I++) /*此循环绘制一个方形砖块数组*/
{
top[I]= k;
bottom[I]= top[I]+20;
k = k+21;
OOP-;
for(j=0,m = 0;j & lt=7;j++)
{
left[j]= m;
右[j]=左[j]+80;
m = m+81;
set color(4);
矩形(左[j],上[i],右[j],下[I]);
setfillstyle(SOLID_FILL,j+OOP);
floodfill(left[j]+1,top[i]+1,4);
num[I][j]= pp++;
}
}
While(1) /*该循环控制整个动画*/
{
而(!kbhit())
{
x = x+dx;/*球运动的中心可变控制*/
y = y+dy;
if(x+r 1 & gt;r | | x+r 1 & lt;r)
{ phrase = 0;}
if((x-r 1 & lt;= r | | x+r 1 & lt;= r)& amp;& ampx+r 1 & gt;=l)
{
if(y & lt;t)
phrase = 1;
if(y+r 1 & gt;= t & amp& amp短语==1)
{ dy =-dy;y = t-1-r 1;}
}
if(off==0)
继续;
for(I = 0;我& lt=6;I++) /*此循环用于判断和控制方块砖数组的冲击和擦除*/
for(j = 0;j & lt=7;j++)
{
if((x+r 1 & lt;= right[j]& amp;& ampx+r 1 & gt;= left[j])| |(x-r 1 & lt;= right[j]& amp;& ampx-r 1 & gt;=left[j]))
{
if((y-r 1 & gt;top[I]& amp;& ampy-r 1 & lt;= bottom[I])| |(y+r 1 & gt;= top[I]& amp;& ampy+r 1 & lt;=bottom[i])
{
if(num[i][j]==0)
{继续;}
set color(10);
矩形(左[j],上[i],右[j],下[I]);
setfillstyle(SOLID_FILL,10);
floodfill(左[j]+1,上[i]+1,10);
dy =-dy;
num[I][j]= 0;
得分=分数+10;
printf("%d\b\b\b ",分数);
}
}
if((y+r 1 & gt;= top[I]& amp;& ampy+r 1 & lt;= bottom[I])| |(y-r 1 & gt;= top[I]& amp;& ampy-r 1 & lt;=bottom[i])
{
if((x+r 1 & gt;= left[j]& amp;& ampx+r 1 & lt;right[j])| |(x-r 1 & lt;= right[j]& amp;& ampx-r 1 & gt;左[j]))
{
if(num[i][j]==0)
{继续;}
set color(10);
矩形(左[j],上[i],右[j],下[I]);
setfillstyle(SOLID_FILL,10);
floodfill(左[j]+1,上[i]+1,10);
dx =-dx;
num[I][j]= 0;
得分=分数+10;
printf("%d\b\b\b ",分数);
}
}
}
if(x+r 1 & gt;639) /*控制球的弹出范围*/
{ dx =-dx;x = 638-r 1;}
if(x & lt;=r1)
{ dx =-dx;x = r 1+1;}
if(y+r 1 & gt;=479)
{ off = 0;quit window();打破;}
if(y & lt;=r1)
{ dy =-dy;y = r 1+1;}
如果(分数==560)
{ off = 0;quit window();打破;}
set color(6);
circle(x,y,r 1);
setfillstyle(SOLID_FILL,14);
floodfill(x,y,6);
延时(1000);
set color(10);
circle(x,y,r 1);
setfillstyle(SOLID_FILL,10);
floodfill(x,y,10);
}
a = getch();
set color(10);
矩形(l,t,r,b);
setfillstyle(SOLID_FILL,10);
漫填(l+2,t+2,10);
if(a = = 77 & amp;& ampl & lt=565) /*键盘控制设置*/
{ dl = 20l = l+dl;}
if(a = = 75 & amp;& ampl & gt=15)
{ dl =-20;l = l+dl;}
if(a = = ' y ' & amp;& ampon==1)
打破;
if(a = = ' n ' & amp;& ampon==1)
打破;
如果(a==27)
{ quit window();关= 0;}
r = l+60;
set color(4);
矩形(l,t,r,b);
setfillstyle(SOLID_FILL,1);
漫填(l+5,t+5,4);
延时(100);
}
if(a = = ' y ' & amp;& ampOn==1) /*是否要退出游戏*/
{ break}
if(a = = ' n ' & amp;& ampon==1)
{继续;}
}
closegraph();
}
你不是要求在TC运行吗
C++和c不一样。
如果你想在C++中
你必须先写函数的声明。
不是c调的。
已经修改过了。试试看。
我可以在这里做。
那是一闪而过的图形界面问题。
驱动程序安装不正确。