Discuz! Board

 找回密码
 立即注册
查看: 355|回复: 0

2022.12.10

[复制链接]

20

主题

33

帖子

3458

积分

论坛元老

Rank: 8Rank: 8

积分
3458

小火马 Lv:11
发表于 2022-12-10 14:37:14 | 显示全部楼层 |阅读模式
[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;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 05:33 , Processed in 0.052670 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表