c++编写打砖块小游戏

简介: c++编写打砖块小游戏

image.png

打砖块游戏是一种动作电子游戏的名称。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。今天要做的是打砖块小游戏。

//绘制转块
void DrawZhuanKuai(){
    for (int i = 0; i < ROW; i++){
        for (int j = 0; j < COL; j++){
            //判断是否有砖块
            if (ZhuanKuai[i][j] == 0){
                if ((i + j) % 2 == 0){
                    //设置填充颜色为:天蓝色
                    setfillcolor(LIGHTCYAN);
                    //画出填充矩形:左        上        右                下
                    solidrectangle(j * 40, i * 20, j * 40 + 40, i * 20 + 20);
                }
                else{
                    //设置填充颜色为:灰色
                    setfillcolor(LIGHTGRAY);
                    //画出填充矩形:左        上        右                下
                    solidrectangle(j * 40, i * 20, j * 40 + 40, i * 20 + 20);
                }
            }
        }
    }
}

首先先绘制砖块,这里只需要绘制成简单的矩形就行了,可以设置填充成自己喜欢的颜色。当然摆放的位置也可以你自己随意设置。

//木板移动
void MuBan(){
    //用黑色木板擦除之前的木板
    //设置填充颜色:黑色
    setfillcolor(BLACK);
    //绘制实心木板
    solidrectangle(boardx, boardy, boardx + 60, boardy + 10);
    //让木板左右移动
    switch (getch()){
    case 75://向左移动
        boardx -= 15;
        break;
    case 77://向右移动
        boardx += 15;
        break;
    default:break;
    }
    //防止木板出界
    if (boardx <= 0){
        boardx = 0;
    }
    if (boardx >= (400 - 60)) {
        boardx = (400 - 60);
    }
    //重新绘制木板
    //设置填充颜色:黄色
    setfillcolor(YELLOW);
    //绘制实心木板
    solidrectangle(boardx, boardy, boardx + 60, boardy + 10);
}

上面这一部分代码是写挡板的操控,其实就是左右移动而已,并且需要防止挡板出界而做出屏幕大小的限制。

//小球碰墙壁
    //小球半径为:10
    if (ballx >= (400 - 10) || ballx <= (0 + 10)) {
        addx = -1 * addx;
    }
    if (bally <= 10){
        addy = -1 * addy;
    }
    //小球碰砖块
    int flag = 0;//标记小球打到砖块
    for (int i = 0; i < ROW; i++){
        for (int j = 0; j < COL; j++){
            //砖块坐标
            int x = j * 40;
            int y = i * 20;
            //小球遇到砖块
            if (ZhuanKuai[i][j] == 0 && x - ballx <= 10 && ballx - x <= 50 && bally - y >= 10 && bally - y <= 30) {
                addy = -1 * addy;
                ZhuanKuai[i][j] = 1;
                flag = 1;//控制跳出外层循环
                //让砖块消失
                //设置填充颜色:黑色
                setfillcolor(BLACK);
                //绘制实心木板
                solidrectangle(x, y, x + 40, y + 20);
                break;//退出内层循环
            }
        }
        if (flag){
            break;//退出外层循环
        }
    }
    //小球碰木板
    if (starting&&boardx - ballx <= 10 && ballx - boardx <= 70 && boardy - bally <= 10) {
        addy = -1 * addy;
    }

上面这一部分是核心逻辑,也就是描写了小球的游戏逻辑。分别对应碰撞到了墙壁,碰撞了砖块,碰撞了挡板。只需要把这三个逻辑理清楚,那一切都会简单得多了。

有想要学习如何做游戏的,可以关注公众号:诗一样的代码,找我一起学习。

相关文章
|
11月前
|
C++
推箱子小游戏(c++实现)
推箱子小游戏(c++实现)
|
算法 定位技术 C++
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++
简单的来说,算法就是用计算机程序代码来实现数学思想的一种方法。学习算法就是为了了解它们在计算机中如何演算,以及在当今的信息时代,它们是如何在各个层面上影响我们的日常生活的,从而提高我们的逻辑思维能力和处理实际问题的能力。善用算法、巧用算法,是培养程序设计逻辑的重中之重,许多实际的问题都可用多个可行的算法来解决, 但是要从中找出最优的解决算法却是一项挑战。
490 6
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++
C++急速赛车小游戏(注释几天后更新)
C++急速赛车小游戏(注释几天后更新)
218 0
C++急速赛车小游戏(注释几天后更新)
【推荐福利】c++使用easyx做出像素鸟,简单上手小游戏
【推荐福利】c++使用easyx做出像素鸟,简单上手小游戏
c++【键盘读入操作】,两种方法做小游戏的控制摇杆
c++【键盘读入操作】,两种方法做小游戏的控制摇杆
c++【键盘读入操作】,两种方法做小游戏的控制摇杆
|
算法 C++
c++编写简易版2048小游戏
c++编写简易版2048小游戏
|
算法 定位技术 C++
用c++写一个的一个推箱子小游戏
用c++写一个的一个推箱子小游戏
用c++写一个的一个推箱子小游戏
c++循环、continue、排序、goto以及猜数字小游戏
c++循环、continue、排序、goto以及猜数字小游戏
|
1天前
|
存储 Java C++
【C++类和对象】探索static成员、友元以及内部类
【C++类和对象】探索static成员、友元以及内部类