(图形化的扫雷,有音乐播放功能,含源码)C语言基础配合easyx图形库

前言

本文章重点介绍的是如何使用大一C语言配合easyx图形库加上少许的音乐播放的课外知识来制作扫雷小游戏(其中的很多课外的函数不必要深入了解,只需要知道怎么使用就可以了)

游戏浏览

当然这款游戏和官方扫雷还有些许的不同,都是取决于我自己的喜好,你们也可以根据自己的个人的习惯来做出改变。

准备工作

EasyX图形库的下载

EasyX图形库

下载后找到文件安装的地址,点击后exe文件即可安装,安装对应电脑软件的版本即可。还有一个easyx的帮助文档可以帮助我们解决一些常见问题。

编辑环境的创建

1    .cpp文件和.h文件的创建

然后编辑项目名称和项目地址(不建议放在C盘)

右键源文件--添加--新建项--建立两个.cpp文件和一个.h文件(两个cpp文件分别用来主函数入口,函数的定义。.h文件用来引用库函数声明和函数的声明。)虽然我们使用的是C语言而不是c++但是还是要创建cpp文件,因为.c文件不能使用easyx图形库,不用担心我们使用的都是C语言知识。

项目属性的搭配

将字符集系统改为多字节字符集系统

关闭SDL检查,一面以后会出现一些不必要的报错。

配置静态库文件(用于后面的音乐播放功能)

#pragma comment(lib,"winmm.lib")也可以在项目属性中更改。(如果在项目属性中更改可以不写但是下面的头文件必须写)

鼠标操作的实现

利用MouseHit()函数来判断是否有鼠标操作产生,该函数没有参数,返回值是bool类型,当有鼠标操作时会返回true,没有时会返回false

鼠标的操作有很多种

然后通过GetMouseMsg函数返回保存有鼠标信息的结构体

结构体的内容

其中uMsg包含有

具体的用法

加个while循环可以一直获取鼠标信息

while (1)
{
	if (MouseHit())
	{
		MOUSEMSG msg = GetMouseMsg();
		if (msg.uMsg == WM_LBUTTONDOWN)
		{
			printf("左键按下!");
		}
	}
}

                                        获取鼠标坐标

通过访问结构体变量msg中的x和y成员来访问x坐标和y坐标

                                        游戏界面

初始化游戏界面

1.初始化游戏区域大小

initgraph(3500, 3500, SHOWCONSOLE);

初始化一个长3500像素,宽3500像素的游戏区域。后面一个参数是“是否想要显示控制台,0是不显示,SHOWCONSOLE是显示。

2.可以通过setbkcolor函数来对背景颜色进行填充,可以通过RGB系统来不断地微调。每个数字最大是255,最小是0,当setbkcolor(RGB(0,0,0))是背景颜色是黑色的。

最后通过cleardevice()函数将颜色应用到背景中

通过loadimage()函数和putimage()函数来将图片投放到easyx控制台中。

先定义一个放图片的数组img[10],将图片放在项目的文件目录下,loadimage函数将图片加载进来,第一个参数:是图片数组成员的地址,第二个参数:通过./访问到项目的文件目录下,后面写文件的名称和后缀名(第二个参数还有很多中写法详细见    路径的表示

putimage函数的使用第一个参数是图片投放位置的x坐标,第二个参数是图片投放位置的y坐标,第三个参数是将要投放图片的地址。

更多函数的参数细节大家可以去cplusplus

图片和音乐素材的收集(因为含有音乐播放功能)

收集需要有空白格图片,未知情况下的图片,数字1到8的图片,炸弹图片,旗帜图片和音乐文件(包含胜利和失败的音频和流行音乐)

因为不能放我的素材地址,要不审核不过。所以还是大家自己收集吧

音乐素材大家可以去音乐宝网站上面自行根据各自的喜好进行下载音乐文件

*然后将所有的图片和音乐的素材都放在项目文件夹下面(必须要进行的)

播放音乐功能的实现

使用mciSendString函数

其中,mcisendstring函数分为两种 一种是mcisendstr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值