• 跳球过障碍游戏 C++


    啥也不说了,直接上代码,在windows下运行

    #include
    #include
    #include

    int main(){
        float width, height, gravity; //游戏画面宽高,重力加速度
        float ball_x, ball_y, ball_vy, radius;//小球圆心坐标、y方向加速度、半径
        float rect_left_x, rect_top_y, rect_width, rect_height, rect_vx;
        int score = 0;
        int isBallOnFloor = 1;

        width = 600;//游戏画面宽度
        height = 400; //游戏画面高度
        gravity = 0.6;//重力加速度
        initgraph(width, height);//新建一个画布

        radius = 20;
        ball_x = width/4;
        ball_y = height - radius;
        ball_vy = 0;

        rect_height = 100;
        rect_width = 20;
        rect_left_x = width *3/4;
        rect_top_y = height - rect_height;
        rect_vx = -3;
        while(1){
            if(kbhit()){ //当按键时
                char input = _getch();
                if(input == ' ' && isBallOnFloor == 1){
                    ball_vy = -17;
                    isBallOnFloor = 0;
                }
            }
            ball_vy += gravity;
            ball_y += ball_vy;

            if(ball_y >= height - radius){
                ball_vy = 0;
                ball_y =height - radius;
                isBallOnFloor = 1;
            }
            rect_left_x = rect_left_x + rect_vx;
            if(rect_left_x <= 0){
                rect_left_x = width;
                score += 1;
                rect_height = rand() % int(height/4) + height/4;
                rect_vx = rand()/float(RAND_MAX)*4 - 7;
            }
            if((rect_left_x<=ball_x+radius)
                &&(rect_left_x + rect_width >= ball_x - radius)
                &&(height - rect_height <= ball_y + radius)){
                    Sleep(100);
                    score = 0;
            }
                
            cleardevice();
            fillcircle(ball_x, ball_y,radius);
            fillrectangle(rect_left_x, height-rect_height, rect_left_x+rect_width, height);
            TCHAR s[20];
            _stprintf(s,_T("%d"), score);
            settextstyle(40, 0, _T("宋体"));
            outtextxy(50, 30, s);
            Sleep(10);
        }
        closegraph();
        return 0;
    }

  • 相关阅读:
    Synchronized
    vue 路由的内置组件 router-view 详细介绍
    分布式和可再生系统建模(simulink)
    编程面试_动态规划
    风口之下,隐形正畸还能走多远?
    React性能优化,六个小技巧教你减少组件无效渲染
    编译+链接和预处理
    [Golang] GO 语言工作环境的基本概念
    C++ 不知树系列之初识树(树的邻接矩阵、双亲孩子表示法……)
    问题求解:总计600人,每次刀一个奇数位的人,最后剩下谁的概率最高 暴力求解法
  • 原文地址:https://blog.csdn.net/m0_47161778/article/details/126052493