[C++] 纯文本查看 复制代码 #include<bits/stdc++.h>
#include <graphics.h> //包含EGE的头文件
#include<time.h>
using namespace std;
int width=800;
int height=600;
int num;
int count1;
char ch;
int wallk=50;
int wallc=100;
struct ballon
{
float x;//ball.x坐标
float y;//ball.y坐标
float vx;//ball.x向速度
float vy;//ball.y向速度
int radius;//半径
float g;
}ball;
struct wallon
{
int xl;
int yl;
int xr;
int yr;
int vx;
}wall;
void start()
{
srand(time(0));//随机种子函数
wall.xl=width-wallk;
wall.yl=0;
wall.yr=rand()%150+100;
wall.xr=width;
ball.x=200;
ball.y=300;
ball.vx=0;
ball.vy=0;
ball.radius=rand()%5+10;
ball.g=0.4;
count1=1;
initgraph(width, height); //初始化图形界面
setcolor(GREEN); //设置画图线为红色
setbkcolor(WHITE);//设置背景颜色为白色
setfillcolor(BLUE);//设置填充颜色为红色
setfont(25,0,"幼圆");//(字体高度,字体宽度(为0即为自适应),字形)设置字体为25,幼圆字体
setbkmode(TRANSPARENT); //设置文字背景色为透明(默认为有背景色)
}
void update()//数据更新
{
ball.vy=ball.vy+ball.g;
//ball.vx=ball.vx+ball.g;
ball.y=ball.y+ball.vy;
ball.x=ball.x+ball.vx;
if(ball.y>=height-ball.radius)
{
ball.vy=-ball.vy;
}
else if(ball.y<=ball.radius)
{
ball.vy=-ball.vy;
}
if(ball.x>=width-ball.radius)
{
ball.x=width-ball.radius;
ball.vx=-ball.vx;
}
else if(ball.x<=ball.radius)
{
ball.vx=-ball.vx;
}
if(kbhit())
{
ch=getch();
if(ch==' ')
{
ball.vy=-10;
}
}
}
void drawball()//画球
{
//xyprintf(20,20,"病人数量:%d",count1);//格式化输出文字
fillellipse(ball.x, ball.y, ball.radius, ball.radius); //画一个实心圆
bar(wall.xl,wall.yl,wall.xr,wall.yr);
bar(wall.xl,wallc+wall.yr,wall.xr,height);
Sleep(10);
cleardevice();
}
int main()
{
start();
while(1)
{
update();
drawball();
if(count1==num)
{
break;
}
}
getch();
return 0;
}
|