0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用C语言实现别踩白块游戏

C语言编程学习基地 来源:C语言编程学习基地 作者:C语言编程学习基地 2021-11-18 11:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这篇文章主要为大家详细介绍了C语言实现——《别踩白块游戏》,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下!

游戏介绍:

《别踩白块儿 Don't Tap The White Tile》,这就是这个游戏的一个规则,我们只需要不断踩着黑色方块前进即可,很简单吧?谁都可以会玩,但并不是谁都能玩得很好噢,你呢?快来挑战看看吧!经典模式,以最快的速度到达终点。街机模式,你有能力得多少分就得多少分,没有任何限制,这也是最具挑战性的一个模式。限时模式,在30秒内看你能走几步。极速模式,没有最高速限制的街机模式, 挑战你的极限接力模式,规定时间内完成50块儿,然后会有更多时间去完成另外的50块儿!

好了,那么我们今天就用我们所学的C语言知识来做出这个游戏吧!本项目仅实现了街机模式,其他模式大家可以自行摸索哟!

本项目编译环境:VS2019/VS2013;

插件:图形库插件easyX,涉及图片素材可以自行百度找也可以关注文末领取;

配套讲解教程:别踩白块游戏教程——哔哩哔哩

源代码示例:

#include#include#include#include#include        //多媒体设备接口头文件 #pragma comment(lib,"winmm.lib")  //多媒体设备接口库文件

#define mian main#define WIDTH 400#define HEIGHT 700#define INTERVAL 100//黑块怎么存储?int map[4];int score;  //分数
void gameInit(){  //播放音乐,向多媒体设备接口发送指令字符串  mciSendString(L"open ./野蜂飞舞.mp3 alias BGM", NULL, NULL, NULL);  //media device interface   send 发送  string 字符串  mciSendString(L"play  BGM", NULL, NULL, NULL);  //设置随机数种子  srand((unsigned)time(NULL));  //对map进行随机初始化  for (size_t i = 0; i < 4; i++)  {    map[i] = rand() % 4;  }}//游戏界面绘制void gameDraw(){  //设置文字样式  settextstyle(30, 0, L"楷体");  settextcolor(RED);  outtextxy(150, 30, L"别踩白块");  //绘制游戏界面  setlinecolor(BLACK);  setlinestyle(PS_SOLID, 2);  for (size_t i = 0; i < 5; i++)  {    line(0, i * 150 + INTERVAL, WIDTH, i * 150 + INTERVAL);  //画横线    line(i * 100, INTERVAL, i * 100, HEIGHT);            //画竖线  }  //根据map绘制出黑块所在的位置  setfillcolor(BLACK);  for (size_t i = 0; i < 4; i++)  {    int x = map[i] * 100;    int y = i * 150 + INTERVAL;    //画一个黑色的矩形    fillrectangle(x, y, x + 100, y + 150);  }  //输出分数  settextstyle(20, 0, L"楷体");  settextcolor(BLACK);  //把int 转成 字符串用什么?  WCHAR str[20] = L"";  wsprintf(str, L"%d", score);  outtextxy(20, 20, str);}void move(){  //清屏  cleardevice();  //移动  for (size_t i = 3; i > 0; i--)  {    map[i] = map[i - 1];  }  map[0] = rand() % 4;}//用鼠标点击黑块,实现所有快,往下移动bool mouseEvent(){  //获取鼠标消息  MOUSEMSG msg = GetMouseMsg();  if (msg.uMsg == WM_LBUTTONDOWN)  //鼠标左键按下  {    //获取最下面的黑块的左上角坐标    int x = map[3] * 100;    int y = 3 * 150 + INTERVAL;    if (msg.x >= x && msg.x <= x + 100 && msg.y >= y && msg.y <= y + 150)    {      score += 10;      //move();    }    else    {      return false;    }  }  return true;}//街机模式void loop(){  Sleep(500);  // 这个不太行,要自己写定时器最好  move();}void gameOver(){  //弹出框  int isok =MessageBox(GetHWnd(), L"you lowser,是否继续?", L"hit", MB_OKCANCEL);  if (isok == IDOK)  {    printf("继续游戏~
");  }  else  {    printf("推出游戏~
");  }}
int mian(){  //图形,正方形,圆形....  图片  EW_SHOWCONSOLE同时显示控制台  initgraph(WIDTH, HEIGHT,EW_SHOWCONSOLE);  //设置窗口背景颜色  setbkcolor(WHITE);  cleardevice();  gameInit();  while (true)  {    gameDraw();    if (!mouseEvent())    {      break;    }    loop();  }  //游戏结束处理  gameOver();  getchar();  closegraph();  return 0;}

责任编辑:haq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144625
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151

原文标题:C语言项目实战:《别踩白块游戏》零基础项目!137 行源代码示例

文章出处:【微信号:cyuyanxuexi,微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程?

    的缺陷 高级语言存在的目的是可以实现更为优化的算法,更多的是为了方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。
    发表于 11-28 07:37

    C语言的分支结构介绍

    1.简单if语句 C语言中的分支结构语句中的if条件语句。 简单if语句的基本结构如下: 代码语言:javascript if(表达式) { 执行代码; } 其语义是:如
    发表于 11-25 07:48

    请问如何用C语言列举当前所有网口?

    何用C语言列举当前所有网口?
    发表于 11-25 07:23

    C语言特性

    数据,实现对设备的精准控制,同时降低功耗,延长设备的使用寿命。 2、可移植性:跨平台的通行证 C 语言具有良好的可移植性,这意味着用 C 语言
    发表于 11-24 07:01

    何用FPGA实现4K视频的输入输出与处理

    游戏、影视和显示领域,4K 已经成为标配。而今天,我们就来聊聊——如何用 FPGA 实现 4K 视频的输入输出与处理。
    的头像 发表于 10-15 10:47 1675次阅读
    如<b class='flag-5'>何用</b>FPGA<b class='flag-5'>实现</b>4K视频的输入输出与处理

    单片机C语言实例(350+例)

    350+单片机C语言实例! 纯分享帖,需要者可点击附件免费获取完整资料~~~【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-22 21:47

    在西门子TIA Portal中使用CFC语言实现电机控制的全流程

    西门子 CFC(Continuous Function Chart)是一种图形化的编程语言,主要用于西门子自动化系统(如 SIMATIC PCS 7、TIA Portal 等)中的过程控制和逻辑设计。它基于功能和数据流的概念,适合连续过程控制、复杂逻辑和信号处理任务。
    的头像 发表于 05-21 10:47 3192次阅读
    在西门子TIA Portal中使用CFC<b class='flag-5'>语言实现</b>电机控制的全流程

    深入理解C语言C语言循环控制

    C语言编程中,循环结构是至关重要的,它可以让程序重复执行特定的代码,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循
    的头像 发表于 04-29 18:49 1736次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    客厅变游戏室?如何用树莓派实现 Moonlight 游戏流媒体

    在这个项目中,我们将向您展示如何使用Moonlight将游戏直接流式传输到您的RaspberryPi。Moonlight:https://moonlight-stream.org/Moonlight
    的头像 发表于 03-25 09:37 1267次阅读
    客厅变<b class='flag-5'>游戏</b>室?如<b class='flag-5'>何用</b>树莓派<b class='flag-5'>实现</b> Moonlight <b class='flag-5'>游戏</b>流媒体

    为什么学了C语言,却写不出像样的项目?

    在学习编程的路上,C语言几乎是每个程序员的“必修课”。不管你是打算从事嵌入式开发、系统编程,还是想要深入理解操作系统的底层原理,C语言都是一
    的头像 发表于 03-14 17:37 683次阅读
    为什么学了<b class='flag-5'>C</b><b class='flag-5'>语言</b>,却写不出像样的项目?

    单片机C语言编程宝典大全,初学必备【强推下载!】

    资料介绍:包含 1. 51单片机入门教程 2. 初学者适用:单片机C语言实例100例(代码及释义) 3. 51单片机C语言快速上手 4. 51单片机
    发表于 03-14 11:03

    限时免积分下载:增量式与位置式PID算法的C语言实现分享

    前面咱们有分享对PID算法离散化和增量式PID算法原理进行来探索,之后又使用Matlab进行了仿真实验,对PID三个参数又有了更深入的认识,接下来我们来使用C语言进行PID算法实现,并且结合控制电机的项目来深入学习。 今天限时免
    发表于 03-05 18:32

    解决HarmonyOS应用中Image组件问题的有效方案

    码完成后才刷新显示。由于图片下载过程耗时较长,在图片完全加载之前,页面往往会显示空白区域或占位图(通常为白色或浅色背景),这种现象被称为“Image ”。“Image ”不仅影
    的头像 发表于 02-17 10:08 1565次阅读
    解决HarmonyOS应用中Image组件<b class='flag-5'>白</b><b class='flag-5'>块</b>问题的有效方案

    EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统

    电子发烧友网站提供《EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统.pdf》资料免费下载
    发表于 01-15 16:06 0次下载
    EE-188:使用<b class='flag-5'>C</b><b class='flag-5'>语言</b>在ADSP-219x DSP上<b class='flag-5'>实现</b>中断驱动系统

    基于FPGA实现图像直方图设计

    直方图统计的原理 直方图统计从数学上来说,是对图像中的像素点进行统计。图像直方图统计常用于统计灰度图像,表示图像中各个灰度级出现的次数或者概率。统计直方图的实现采用C/C++或者其他高级语言实
    的头像 发表于 12-24 10:24 1205次阅读
    基于FPGA<b class='flag-5'>实现</b>图像直方图设计