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

游戏介绍:

是男人就下100层,原名:NS-Shaft。该游戏仅仅属于游玩性范畴游戏,并没有具体的游戏剧情,所以玩法也是非常的简单:使用方向键左右控制小人,要防止被托上去挤死、掉下去摔死、被钉板(尖刀)戳死。

在游戏中,可供玩家落脚的地面共有5种:蓝色的表示普通地面;绿色的是翻转地面,踩上去会被翻转下去,需要留意;白色的是传送带,有两种,始终向左传送和始终向右传送,会加快或减慢玩家的移动速度;带弹簧的为跳板,踩上去会被反复弹起。除钉板外的其他地面踩上去都可回复一格生命值。游戏左上方的长条是小人的生命值,右上方的数字表示当前的层数。

玩法简单,容易上手!所以这也成为了我们编程学习者C语言练习的一个非常好的小项目,知道了游戏的道具、界面内容和玩法,那么我们今天就利用我们所学知识(C语言)来一起开发这样一款简单的小游戏吧!

编译器:VS2013/2019最佳;

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

效果图展示:

配套讲解教程:是男人就下100层游戏教程——哔哩哔哩https://www.bilibili.com/video/BV1qi4y1L7dr?from=search&seid=5772990355002541122&spm_id_from=333.337.0.0

源代码示例:

#include<stdio.h>
#include<easyx.h> //easyx图形库  www.easyx.cn
#include<time.h>
#include<stdbool.h>
#define MAX_BOARD 13    //最大板子数量
#define MAX_SPACE 60    //板子的上下间隔struct Board //板子
{int x;int y;int length;COLORREF color;
}board[MAX_BOARD];
struct Player
{int x;int y;int h; //身高COLORREF color;int speed;
}player;//初始化板子
void initBoards()
{//设置随机数种子srand((unsigned)time(NULL));for (size_t i = 0; i < MAX_BOARD; i++){if (i == 0)board[0].y = rand() % getheight();elseboard[i].y = board[i - 1].y + MAX_SPACE;board[i].x = rand() % (getwidth()-100);   //[0,480)   board[i].length = rand() % 50+50;     //[0,50)  +50 [50,100)board[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);}
}
//绘制板子
void drawBoards()
{for (size_t i = 0; i < MAX_BOARD; i++){setfillcolor(board[i].color);solidrectangle(board[i].x, board[i].y, board[i].x + board[i].length, board[i].y + 5);}
}
//移动板子
void moveBoards()
{for (size_t i = 0; i < MAX_BOARD; i++){board[i].y--;//如果板子移动到顶上了,重新加到最后面if (board[i].y < 0){board[i].y = MAX_BOARD * MAX_SPACE;board[i].x = rand() % (getwidth() - 100); //[0,480)   board[i].length = rand() % 50 + 50;       //[0,50)  +50 [50,100)board[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);}}
}void initPlayer()
{player.h = 15;player.x = board[0].x + rand() % board[0].length;player.y = board[0].y - player.h;player.color = RED;player.speed = 1;
}
void drawPlayer()
{setfillcolor(player.color);solidrectangle(player.x, player.y, player.x + 5, player.y + player.h);
}
//判断玩家是不是在板子上
int inBoard()
{for (size_t i = 0; i < MAX_BOARD; i++){if (player.x > board[i].x && player.x < board[i].x + board[i].length&&player.y >=board[i].y-player.h-2 && player.y <= board[i].y - player.h + 2){return i;}}return -1;
}
void movePlayer()
{//玩家跟着板子往上升if (inBoard() != -1){player.y--;player.speed = 1;}else{player.y+=player.speed;if(player.speed<=5)player.speed ++;}//通过键盘控制玩家的移动  获取键盘按键if (GetAsyncKeyState(VK_LEFT)){player.x--;}if (GetAsyncKeyState(VK_RIGHT)){player.x++;}}
bool Timer(clock_t ms)
{static clock_t start = clock();clock_t end = clock();if (end - start >= ms){start = end;return true;}return false;
}int main()
{//1,创建一个图形窗口initgraph(480, 760,EW_SHOWCONSOLE);initBoards();initPlayer();//双缓冲绘图,防止闪屏BeginBatchDraw();while (true){cleardevice();drawBoards();if (Timer(10)){moveBoards();}drawPlayer();movePlayer();FlushBatchDraw();//Sleep(10); }EndBatchDraw();getchar();return 0;
}

未完成的部分功能代码,大家也可以自己先去想想试试,每一次的思考就是你进步的过程!

如果学习的过程中有什么问题,以及本项目有什么不懂的地方,都可以来找我交流,我来帮你!

那么今天的分享就到这里了,后续会更新更多精彩项目或者知识内容的,大家要好好学C语言C++哟~

写在最后:对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!

C语言C++编程学习交流圈子,QQ群:829164294点击进入】微信公众号:C语言编程学习基地

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习视频分享:

C语言项目实战:《是男人就下100层》零基础项目,160行源代码示例相关推荐

  1. C语言项目实战:《打字母游戏》零基础项目丨183 行源代码示例

    这篇文章主要为大家详细介绍了C语言实现--<打字练习系统>,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下! 游戏介绍: <字母游戏>是一款敏捷打 ...

  2. Cocos2d-x 版本小游戏 《是男人就下100层》 项目开源

    Cocos2d-x 版本小游戏 <是男人就下100层> 项目开源 原文:Cocos2d-x 版本小游戏 <是男人就下100层> 项目开源 这个是很久就开始动手写的一个小游戏了, ...

  3. 《是男人就下100层》真的有隐藏剧情!B站up主数月破解,原作者点赞致谢

    边策 杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI <是男人就下100层>,曾经风靡一代的flash小游戏.炙手可热的休闲游戏之最. 它让多少人没日没夜地想去尝试" ...

  4. Pytho制作小游戏——是男人就下100层

    前言 今天给大家介绍一个Python制作的小游戏:是男人就下100层 先给大家看看效果图 部分代码如下: import pygame import game from random import ch ...

  5. 是男人就下100层【第五层】——2048游戏从源代码到公布市场

    上一篇<是男人就下100层[第五层]--换肤版2048游戏>中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的全部源码公开并结合这个实例在这篇文 ...

  6. 是男人就下100层【第四层】——Crazy贪吃蛇(2)

    在上一篇<是男人就下100层[第四层]--Crazy贪吃蛇(1)>中我们让贪吃蛇移动了起来,接下来我们来实现让贪吃蛇能够绕着手机屏幕边线移动而且能够改变方向 一.加入状态并改动代码 首先我 ...

  7. 是男人就下100层【第五层】——2048游戏从源码到发布市场

    上一篇<是男人就下100层[第五层]--换肤版2048游戏>中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的所有源代码公开并结合这个实例在这篇 ...

  8. cocos2d-x 是男人就下100层 附源码

    1.效果图: 玩法: 一个不断下降的小人,点击屏幕的left或者right控制小人的移动方向,尽可能生存久些.为什么要搞这个游戏呢?因为在2012年的8月份,我完成它的android版本,见<自 ...

  9. 自己写的第一个android 游戏《是男人就下100层》

    自己开发的第一个android 游戏<是男人就下100层>,注意是安卓游戏,不是IPhone的.截图如下:            这个有游戏是用重力感应来控制的,所以要晃动手机来控制人物移 ...

最新文章

  1. 《学习之道》第十三章自己也要总结
  2. 更清晰的认识对象——深拷贝与浅拷贝
  3. CCF201403-1 相反数(100分)
  4. 阿里古谦:阿里互联网架构的6大最佳实践-博客-云栖社区-阿里云
  5. Nginx常见的错误及解决方法
  6. 翁同龢后人向上海博物馆捐赠两件重要家藏
  7. 详解AST抽象语法树
  8. flowable实战(八)flowable核心数据库表详细表字段说明
  9. linux中文件的合并、归档、和压缩
  10. 信息学奥赛一本通 1113:不与最大数相同的数字之和 | OpenJudge NOI 1.9 07
  11. 自己动手写Docker系列 -- 5.1实现容器的后台运行
  12. HDU2011 多项式求和【数列】
  13. Linux系统下存在大量的TIME_WAIT状态的TCP连接的解决方法
  14. 如何进入交换机配置命令窗口
  15. ddm模型公式_cfa讲义-估值中的折现方法-DDM模型(2)
  16. Hydra暴力破解smb协议(Windows用户名和密码)
  17. Python eval() 函数看这里就够了
  18. 用canvas绘制微信小程序海报页面并保存相册-适用微信原生
  19. 字节跳动三场技术面+HR面,掌握这些知识点再也不怕面试通不过!
  20. 卡尔曼滤波器之经典卡尔曼滤波

热门文章

  1. 浅谈c语言问号冒号的用法
  2. centos7 安装node 16x
  3. 理解MVCSmalltalk-80
  4. 某项目Oracle RAC基础库发生ASM磁盘文件头损坏宕机事件分析排查
  5. 元气骑士机器人修好后怎么用_元气骑士机器人如何修理?机器人修理技巧图文介绍...
  6. 甜橙金融敏捷实践之路--运营一体化平台
  7. 计算机网络-ENSP华为设备中的交换机通信原理【敲重点】
  8. 初学构建小项目之仓库管理系统货物管理功能实现(四)
  9. PCIE_MCC驱动阅读过程--HOST篇
  10. 解决WSL2/ubuntu安装软件报错 E: Invalid operation insatll 问题