[C++] 纯文本查看 复制代码 #include <graphics.h>
#include <time.h>
#include <bits/stdc++.h>
using namespace std;
int t=10,speed_1=1;
int height=600,width=300;
int wall_w=50;
int wall_pass=200;
int grade=0;
char ch;
float rnx(int min,int max)
{
float t;
t=rand()%(max-min)+min;
return t;
}
struct ballon
{
int r;
double g,y,vy,x;
}ball;
struct wall
{
double yr,yl,xr,xl,vx,t;
}wall[2];
void start()
{
srand(time(0));
initgraph(width, height);
setcolor(BLACK);
setbkcolor(YELLOW);
srand(time(0));
setbkmode(TRANSPARENT);
ball.y=50;
ball.x=100;
ball.vy=0.5;
ball.r=10;
ball.g=0.2;
wall[0].xl=width-50;
wall[0].xr=width;
wall[0].yl=0;
wall[0].yr=rnx(50,300);
wall[1].xl=width-50;
wall[1].xr=width;
wall[1].yl=wall[0].yr+250;
wall[1].yr=600;
}
int game_over()
{
if((ball.y-ball.r<=wall[0].yr)||(ball.y+ball.r>=wall[1].yl))
{
if(ball.x>=wall[1].xl&&ball.x<=wall[1].xr)
{
return 1;
}
}
return 0;
}
void draw_ball()
{
setcolor(BLACK);
setfont(20,0,"楷体");
xyprintf(20,20,"分数:%d",grade);
xyprintf(20,40,"速度:%d",speed_1);
ball.vy+=ball.g;
ball.y+=ball.vy;
if(kbhit())
{
ch = getch();
if(ch==' ')
{
ball.vy=-6;
}
}
if(ball.y>=height-ball.r)
{
ball.vy=-ball.vy;
ball.y=height-ball.r;
}
if(ball.y<=ball.r)
{
ball.vy=-ball.vy;
}
setfillcolor(RED);
fillellipse(ball.x, ball.y,ball.r,ball.r);
}
void draw_wall()
{
setfillcolor(RED);
for(int i=0;i<2;i++)
{
wall[i].vx=-2;
wall[i].xl+=wall[i].vx;
wall[i].xr+=wall[i].vx;
if(wall[i].xr==0)
{
grade++;
wall[0].yr=rnx(50,300);
wall[1].yl=wall[0].yr+250;
wall[i].xl=width-50;
wall[i].xr=width;
}
bar(wall[i].xl,wall[i].yl,wall[i].xr,wall[i].yr);
}
}
void speed()
{
if(grade==t)
{
speed_1++;
wall[0].vx=wall[0].vx*2;
wall[1].vx=wall[1].vx*2;
t=t+10;
}
}
int main()
{
start();
while(1)
{
cleardevice();
draw_wall();
draw_ball();
Sleep(10);
if(game_over()==1)
{
break;
}
}
getch();
return 0;
} |