[C++] 纯文本查看 复制代码 #include <graphics.h> //包含EGE的头文件
#include<time.h> //包含随机数,时间函数
#include<bits/stdc++.h>
using namespace std;
int width =800;
int height =600;
int num;
char ch;
int wallk=50;//障碍物宽和高
int wallc=100;//障碍物间的缺口长度
int score,score_flag;
struct ballon
{
float x;
float y;
float vx;
float vy;
float g;
float radius;
}ball;
struct wallon{
int xr;//左上x坐标
int yr;//左上y坐标
int xl;//右下x坐标
int yl;//右下y坐标 y
int vx;//x向速度
}wall;
void start()//初始化
{
srand(time(0));//随机种子函数
wall.xl=width -wallk;
wall.yl=0;
wall.xr=width;
wall.yr=100+rand()%150;
ball.x=300;//ball.x坐标
ball.y=200;//ball.y坐标
ball.vx=0;//ball.x向速度
ball.vy=0;//ball[si].y向速度
ball.radius =rand()%3+10;//半径
ball.g=0.3;
initgraph(width, height); //初始化图形界面
setcolor(GREEN); //设置画图线为红色
setbkcolor(YELLOW);//设置背景颜色为白色
setfillcolor(BLUE);//设置填充颜色为红色
}
void update()//数据更新
{
ball.x=ball.x+ball.vx;
ball.y=ball.y+ball.vy;
ball.vy=ball.vy+ball.g;
if(ball.y>=height-ball.radius)
{
ball.vy=-ball.vy;
}
if(ball.y<=ball.radius)
{
ball.vy=-ball.vy;
}
if(ball.x>=width-ball.radius)
{
ball.vx=-ball.vx;
}
if(ball.x<=ball.radius)
{
ball.vx=-ball.vx;
}
if(kbhit())
{
ch = getch();
if(ch==' ')
{
ball.vy = -10;
}
}
}
void drawball()//画球
{
fillellipse(ball.x, ball.y, ball.radius, ball.radius); //画一个实心圆
bar(wall.xl,wall.yl,wall.xr,wall.yr);
bar(wall.xl,wall.yr+wallc,wall.xr,height);
Sleep(10);
cleardevice();
}
int main()
{
start();
while(1)
{
update();
drawball();
}
return 0;
} |