突然喜欢惊鸿一瞥这个词,一见钟情太肤浅日久生情太苍白,别人眉来眼去,我只偷偷看你一眼。

嗨!这里是狐狸~

新的一周又开始了,时间过得还真快,不知道给大家分享点啥了,想发偏算法之类怕大家都听不懂,想发知识类的又怕大家感觉没意思,想来想去还是给大家分享些项目吧,但分享些什么项目自己又很纠结,这里就需要大家的智慧了,大家想看什么都可以评论来告诉我,每条评论我都会去看,我会用心去肝你们想看的项目的!!!

好了,进入正题,今天呢给大家分享一个简单的小游戏——《别踩白块儿》,不知道大家有没有玩过,曾经也是风靡一时,其实这个游戏制作起来非常的简单,接下来就让我来告诉大家怎么去简单的实现这个游戏项目。(当然啦,我做的仍是最low版本,大家可以进行再创造,相信你们比我强)。

项目源码

头文件

#include<stdio.h>
#include<graphics.h>  //easyx图形库 需要安装
#include<time.h>
#include<mmsystem.h>              //头文件:多媒体设备接口
#pragma comment(lib,"winmm.lib")  //库文件#define INTERVAL 100 //最前面的间隔

黑块表示函数

int score;
//如何表示黑快?
int flag[4];
void initFlag()
{for (int i = 0; i < 4; i++){flag[i] = rand() % 4;   //[0-4)//printf("%d ", flag[i]);}
}

绘制函数

void drawMap()
{settextstyle(25, 0, "黑体");settextcolor(RED);//输出文字游戏结束outtextxy(150, 30, "别踩白块儿");char str[30] = { 0 };sprintf_s(str, "score:%d", score);outtextxy(280, 20, str);//设置线条样式setlinestyle(PS_SOLID, 2);setlinecolor(RGB(59, 59, 59));for (int i = 0; i < 5; i++){line(0, i * 150 + INTERVAL, 400, i * 150 + INTERVAL);line(i * 100, INTERVAL, i * 100, 700);}//绘制黑快setfillcolor(BLACK);for (int i = 0; i < 4; i++){int x = flag[i] * 100;int y = i * 150 + INTERVAL;fillrectangle(x, y, x + 100, y + 150);}
}

鼠标控制函数

bool mouseEvent()
{//获取鼠标消息MOUSEMSG msg = GetMouseMsg();if (msg.uMsg == WM_LBUTTONDOWN)    //左键按下{//获取最下面的一个黑快的坐标(左上角)int x = flag[3] * 100;int y = 3 * 150 + INTERVAL;//判断鼠标是否点击的最下面的黑快if (msg.x > x && msg.x<x + 100 && msg.y>y && msg.y < y + 150){cleardevice();//整体移动,数组元素后移for (int i = 3; i >0; i--){flag[i] = flag[i - 1];}//把第一个黑快重新生成flag[0] = rand() % 4;score += 10;}else{return false;}}return true;
}
//键盘按下玩游戏
bool keyMouse()
{return false;
}

游戏结束函数

void gameOver()
{settextstyle(25, 0, "黑体");settextcolor(RED);//输出文字游戏结束outtextxy(150, 30, "Game Over!");MessageBox(GetHWnd(), "Game Over!", "low B", MB_OK);
}

主函数

int main()
{//播放BGM mciSendString("open 野蜂飞舞.mp3 alias BGM", NULL, 0, NULL);mciSendString("play BGM", NULL, 0, NULL);//创建图形窗口 initgraph(int width, int height, int flag = NULL);  // 初始化图形环境initgraph(400, 700/*,EW_SHOWCONSOLE*/);   //flag 标志,是否显示控制台窗口,或者关闭按钮//设置背景颜色setbkcolor(WHITE);cleardevice();//设置随机数种子srand((unsigned)time(NULL));initFlag();while (1){drawMap();if (!mouseEvent())break;}gameOver();getchar();closegraph();return 0;
}

总结

这个项目可以说是非常简单了,不需要任何的素材都可以运行,只需一个easyx图形库,大家可以直接复制代码去运行一下试试,应该是没问题的,对了,大家之前有问过很多关于easyx图形库的事情,因为有很多编译器是不支持这个图形库的,这里还是建议大家去用VS实现这个项目,当然了,关于这个项目的优化就要靠大家的智慧了,加音乐加界面加背景啥的都是可以的,自己可以去网上找素材,或许直接进群里领取我们准备好的素材也是可以的。

好了,大家还想看什么一定要在评论区告诉我,后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以回帖留言。想要C/C++学习资料以及其他项目的源码的可以加群【1083227756】了解。想要对程序员的未来发展有兴趣的可以关注微信公众号:【狐狸的编码时光】,希望和大家一起学习进步!!!

【C语言】简单小游戏项目:《别踩白块儿》相关推荐

  1. QT 小游戏 : 别踩白块儿~

    一.实现思路 QPainter 绘制 游戏界面 PS:根据方块坐标链表绘制所有方块 支持两种操作方式 PS:鼠标事件 和 键盘事件(Q,W,E,R,T) 定时器(10ms) 刷新 方块坐标数据 根据得 ...

  2. c语言有啥简单的小程序,c语言-简单小程序-简单算法

    <c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...

  3. python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)

    python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接

  4. 基于Linux、QT、C++的“别踩白块儿”小游戏

    基于Linux.QT.C++的"别踩白块儿"小游戏 源码链接 一.功能实现 完善的游戏界面.游戏倒计时.得分记录.历史最高分显示 二.功能描述 1.界面为4*4,一行中只有一个黑块 ...

  5. 初学JS——利用JS制作的别踩白块儿(街机模式) 小游戏

    初学JS--利用JS制作的别踩白块儿(街机模式) 小游戏 这个是上个星期5写的了,当时是突然想写个游戏,就想到了别踩白块儿,当时的想法是 可能普通模式的别踩白块儿因为他的"块儿"是 ...

  6. 傅小森的游戏制作之路-别踩白块儿

    项目前言 别踩白块儿 这- 还用开发吗? 别人已经制作了呀 触屏版本多的是 是挺多的 但是 你见过按键版本的嘛? 没见过吧 这就是需要开发出来 , 进入项目需求环节 项目需求 别踩白块儿 顾名思义:不 ...

  7. Cocos别踩白块儿案列1

    Cocos  版本3.10 1.游戏介绍: <别踩白块儿>是由 Umoni Studio (Umoni Entertainment Limited 的前身)"制作的一款休闲益智游 ...

  8. 团队项目代码分析(Android游戏:别踩白块儿)

    代码组成部分: 关键代码主要分为三大部分,如下图所示(用思维导图的形式展示): 代码调用关系 通过MainActivity调用其他类❤,具体见核心代码分析! 核心代码分析 public class P ...

  9. python 4399别踩白块儿脚本

    持续无聊中,看到别踩白块儿觉得这个脚本貌似比较好写. 需要用到的python 库如下 import pyautogui from PIL import ImageGrab, Image import ...

  10. web学习(2)--别踩白块儿(js版)(web入门)

    废话不多说,就是一个简单的网页版的别踩白块儿 (踩到白块会弹出窗口,手动点击确定才能继续游戏,达到耗费你的游戏时间的目的) HTML:(注意js文件的名字和所放位置,如果和我命名的不一样,注意在第六行 ...

最新文章

  1. mockito_Mockito – JAXB的RETURNS_DEEP_STUBS
  2. python1000个常用代码-30个Python常用极简代码,拿走就用
  3. 汽车线束测试软件,Aigtek线束测试仪,汽车线束测试_高精度自动测试_操作简单...
  4. 虚拟化概述及VMware VSphere介绍(一)
  5. 为什么博图中放置按下按钮无反应_为什么点击按钮没反应呢?
  6. android viewpage预加载和懒加载问题
  7. 20 WM配置-策略-定义出库排序序列(拣配)
  8. 别急马上到你们了!携号转网全国推广工作研讨会召开
  9. 电脑太慢了最简单的办法怎么弄_电脑感染病毒的10种症状及简单处理办法 电脑中病毒的症状介绍...
  10. GitHub 多次宕机的罪魁祸首竟是 MySQL?
  11. google Inception v1 - v4 papers 发展历程
  12. matlab在输电线路故障测距中应用,Matlab在输电线路故障测距中的应用
  13. 《互联网周刊》:华为终端的未来之路
  14. 安卓游戏开发,vs win32到eclipse apk出现的跨平台问题
  15. 学会阅读源码后,我觉得自己better了
  16. (修订)准备互联网校招,你需要知道的一些事
  17. 基于matlab的多路BPSK调制—为什么采样率=码元速率x一个码元周期内对码元的采样点数
  18. mysql中输入没反应_mysql数据库插入无反应问题
  19. 数据库系统、数据库管理系统、数据库应用系统区别与联系
  20. PHP 零基础入门笔记(11):字符串 String

热门文章

  1. centos7通过阿里云配置docker加速镜像
  2. 数据挖掘概念与技术(韩家伟)阅读笔记5--数据规范化和属性构造
  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]...
  4. linux 命令(7) df
  5. 6.828 - lab3
  6. 链表(python版)
  7. ubuntu 16.04 安装和卸载postman
  8. github客户端进行token认证
  9. LINUX多路IO技术 SELECT VS POLL VS EPOLL
  10. android 自定义键盘长按事件,Android触发事件总结(触摸屏事件,手势识别,键盘事件,模拟鼠标/按键事件)...