//easyx图形库头文件

#include//控制台输入输出头文件

//宏定义:砖块为:5行10列

#define ROW 5

#define COL 10

//砖块数组

int ZhuanKuai[ROW][COL] = { 0 };

//小球坐标

int ballx;

int bally;

//小球的速度一定,坐标均匀的改变

int addx = 1;

int addy = -1;

//判断木板是否接到球

bool starting = false;

//木板坐标

int boardx;

int boardy;

//绘制转块

void DrawZhuanKuai();

//初始化游戏

void InitGame();

//木板移动

void MuBan();

//小球移动

void ballMove();

int main(){

//创建图形窗口

initgraph(400, 600);

//初始化游戏

InitGame();

//建立死循环,让游戏继续

while (1){

//kbhit()-->判断是否有按键按下

//有按键按下--》true

//无按键按下--》false

//检测键盘输入:有输入,移动木板

if (kbhit()){

MuBan();

}

//如果木板接不到小球:终止循环

if (bally > boardy){

break;

}

ballMove();//移动小球

}

//弹出窗口:游戏结束

//"游戏结束!!!"--》提示信息

//"打砖块"--》新生成的窗口标题

//MB_OK--》只有一个【确定】按钮

MessageBox(NULL, L"游戏结束!!!", L"打砖块", MB_OK);

return 0;

}

//...省略函数实现相关代码...

```

## 3. 函数实现相关代码

### 3.1 初始化游戏

```c

//小球坐标

int ballx;

int bally;

//木板坐标

int boardx;

int boardy;

//初始化游戏

void InitGame(){

//初始化小球坐标

ballx = 200;

bally = 580;

//初始化木板坐标

boardx = 170;

boardy = 590;

//绘制转块

DrawZhuanKuai();

//绘制小球

//设置填充颜色:粉红色

setfillcolor(LIGHTRED);

//绘制实心小球

solidcircle(ballx, bally, 10);//坐标 + 半径

//绘制木板

//设置填充颜色:黄色

setfillcolor(YELLOW);

//绘制实心木板

solidrectangle(boardx, boardy, boardx + 60, boardy + 10);

}

```

### 3.2 绘制砖块

```c

//宏定义:砖块为:5行10列

#define ROW 5

#define COL 10

//砖块数组

int ZhuanKuai[ROW][COL] = { 0 };

//绘制转块

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);

}

}

}

}

}

```

### 3.3 木板移动

```c

//木板移动

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);

}

```

### 3.4 小球移动

```C

//小球的速度一定,坐标均匀的改变

int addx = 1;

int addy = -1;

//判断木板是否接到球

bool starting = false;

//移动小球

void ballMove(){

//用黑色小球擦除之前的小球

//绘制小球

//设置填充颜色:黑色

setfillcolor(BLACK);

//绘制实心小球

solidcircle(ballx, bally, 10);//坐标 + 半径

//开始绘制

BeginBatchDraw();

//小球碰墙壁

//小球半径为: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;

}

starting = true;

ballx += addx;

bally += addy;

//移动到新位置的小球

//设置填充颜色:粉色

setfillcolor(LIGHTRED);

//绘制实心小球

solidcircle(ballx, bally, 10);//坐标 + 半径

//结束绘制

FlushBatchDraw();

Sleep(5);//延时5毫秒

}

```

## 4. 成果展示

![](/image_editor_upload/20200417085513_80195.png)

c语言游戏菜单栏,C语言小游戏之打砖块相关推荐

  1. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

  2. c语言设置一个选择数字的程序,C语言编一个数字益智小游戏

    程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...

  3. C语言射击类打飞机小游戏

    使用c语言编写一个打飞机小游戏,使用键盘按键来进行游戏,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次机会. 在网上查询资料并且和同学讨论之后,对原来的代码有了一些改进, 改进:增加了颜色函数 ...

  4. c语言射击类打飞机小游戏感悟

    c语言:简单飞机射击小游戏 使用c语言编写一个打飞机小游戏,使用键盘按键来进行游戏,操作方法是"a""d""w"或者"←" ...

  5. c语言成语接龙编程,C语言完成成语接龙小游戏

    用C语言实现成语接龙小游戏(新手上路,大神勿喷) 1.首先需要找到一个成语库(从网上下载即可,保存为.txt文件) 2.整体思路如下 由于要用的成语保存在文件里,一边用一边读取会降低代码的效率,所以我 ...

  6. 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)

    作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...

  7. c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  8. c语言贪吃蛇打包到桌面,C语言实现桌面贪吃蛇小游戏

    本篇写的是桌面贪吃蛇小游戏,大家自己看吧,感谢大家的支持,谢谢!O(∩_∩)O~~ #define _CRT_SECURE_NO_WARNINGS #include #include #include ...

  9. C语言接龙,C语言完成成语接龙小游戏

    用C语言实现成语接龙小游戏(新手上路,大神勿喷) 1.首先需要找到一个成语库(从网上下载即可,保存为.txt文件) 2.整体思路如下 由于要用的成语保存在文件里,一边用一边读取会降低代码的效率,所以我 ...

  10. C语言实现吃豆人小游戏(转载)

    c语言实现吃豆人小游戏(转载) 游戏内还有一些bug,凑活着来玩一玩吧! #include <stdio.h> #include <iostream> #include < ...

最新文章

  1. Spring Boot 优雅停止服务的几种方法
  2. python简单代码hello-[代码全屏查看]-python初学之helloworld
  3. C++实现N选R的实现算法(附完整源码)
  4. 向量余弦值python_向量/矩阵的余弦值打印(元素明智的操作) 使用Python的线性代数
  5. 领域应用 | 企业效益最大化的秘密:知识图谱
  6. python读取文件并存入mysql_1.python读取txt文件并插入到mysql数据库以及将py脚本文件打包成独立的exe程序...
  7. Android中获取IMEI码及其它相关信息的源码
  8. html修改字体大小菜鸟,HTML字体大小颜色
  9. 时速云Kubernetes进阶培训 第三期
  10. JUNIT5 + Mockito
  11. IM直播聊天--西瓜视频
  12. python去掉标点、特殊符号_删除URL的Python列表末尾的特殊字符/标点符号
  13. PostScirpt打印机驱动程序
  14. 怎么安装win10系统?Win10系统安装教程
  15. SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
  16. linux克隆步骤,CentOS克隆机器步骤,图文教程
  17. 牛顿迭代法——求根好手
  18. CityMaker学习教程07 示例代码的使用CSharp
  19. 如何在html中在线预览pdf文件?
  20. 已被Windows defender smartscreen阻止

热门文章

  1. 2020-12-17 Latex代码公式中如何设定多个对齐点( Multiple aligning symbols )
  2. 第一章 编程基础知识
  3. python D5 字典
  4. 2017网易有道内推编程题
  5. StandardContext
  6. 为已创建好的临时表添加字段列
  7. XGBoost的参数说明
  8. 【leetcode 简单】第十一题 搜索插入位置
  9. 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
  10. MVC3 - 控制器