千家信息网

C++怎么使用easyx实现打砖块游戏

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍"C++怎么使用easyx实现打砖块游戏",在日常操作中,相信很多人在C++怎么使用easyx实现打砖块游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年01月17日C++怎么使用easyx实现打砖块游戏

这篇文章主要介绍"C++怎么使用easyx实现打砖块游戏",在日常操作中,相信很多人在C++怎么使用easyx实现打砖块游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++怎么使用easyx实现打砖块游戏"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

效果如下:

代码:

#include#include#include#include#include#include#include #define HEIGHT 700#define WIDTH 400int ball_x, ball_y;int ball_vx, ball_vy;int radius;int left, right, top, bottom;int baffle_x, baffle_y;int baffle_size;int baffle_move;int brick_x, brick_y;int brick_r;int score;int sleep_time;bool isExit;bool isLose;void initBall() {    left = 0;    top = 0;    right = WIDTH;    bottom = HEIGHT;    ball_x = (right - left) / 2;    ball_y = (bottom - top) / 2;    ball_vx = 1;    ball_vy = 1;    radius = 15;    brick_x = 30;    brick_y = 30;    brick_r = 20;    score = 0;    sleep_time = 5;    baffle_move = 8;    isExit = false;    isLose = false;}void initBaffle() {    baffle_x = (right - left) / 2;    baffle_y = bottom - HEIGHT/8;    baffle_size = WIDTH/2;}void drawBall() {    setfillcolor(RGB(0,255, 0));    fillcircle(ball_x, ball_y, radius);}void drawBrick() {    if (isExit == true) {                setfillcolor(RGB(255, 255, 0));        fillcircle(brick_x, brick_y, brick_r);    }    if (isExit == false) {        isExit = 1;        brick_x = rand() % WIDTH;        brick_y = rand() % HEIGHT / 2;    }        printf("score :%d", score);}void drawBaffle() {    setfillcolor(RGB(255,0, 0));    line(baffle_x, baffle_y, baffle_x + baffle_size, baffle_y);}void updataWithInput() {    //交互    char input;    //根据键盘输入判断平台的移动    if (_kbhit()) {        input = _getch();        switch (input)        {        case 'a':            if (baffle_x > 0)                baffle_x -= baffle_move;            break;        /*case 'w':            if (baffle_y > 0)                baffle_y -= baffle_move;            break;        case 's':            if (baffle_y < bottom - 1)                baffle_y += baffle_move;            break;*/        case 'd':            if (baffle_x < right - baffle_size)                baffle_x += baffle_move;            break;        default:            break;        }    }}void updateBall() {    static int count = 0;    count++;    if (count == 5) {        count = 0;        ball_x += ball_vx;        ball_y += ball_vy;    }        if (ball_x <= left + radius || ball_x >= right - radius) {        ball_vx = -ball_vx;    }    if (ball_y <= top + radius) {        ball_vy = -ball_vy;    }    if (ball_y >= bottom - radius) {        isLose = true;    }    if (ball_y == baffle_y - radius && ball_x >= baffle_x && ball_x <= baffle_x + baffle_size) {        ball_vy = -ball_vy;    }        if (pow((ball_x - brick_x), 2) + pow((ball_y - brick_y), 2) <= pow((brick_r + radius), 2)) {        ball_vx = -ball_vx;        ball_vy = -ball_vy;        isExit = 0;        score++;    }}//void print_score() {//    //    char a[20] = "score";//    int t = 1;//    int tmp = score;//    while (score > 0) {//        t*=10;//        tmp /= 10;//    }//    for (int i = 5; i < 15 && t!=0; i++, t /= 10) {//        a[i] = score%t;//        t %= 10;//    }//    sprintf_s(a, "%d",score);//    TCHAR s[] = _T("score:");//    //    settextcolor(GREEN);//    const char* ca = a;//    outtextxy(WIDTH/2,HEIGHT/2,ca);//    outtextxy(WIDTH / 2, HEIGHT / 2,score);//}int main() {    initgraph(WIDTH, HEIGHT);    BeginBatchDraw();    initBall();    initBaffle();    while (1)    {        if (isLose == true) {            cleardevice();            TCHAR s[] = _T("LOSE");            outtextxy(WIDTH/2,HEIGHT/2, s);        }        FlushBatchDraw();        cleardevice();        drawBall();        drawBrick();        drawBaffle();        updataWithInput();        updateBall();        //print_score();        //Sleep(sleep_time);    }    EndBatchDraw();    closegraph();    return 0;}

到此,关于"C++怎么使用easyx实现打砖块游戏"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0