简明目录
写在前面
所用素材若有侵权,联系我删除。
素材和源码在文末
另外,其实这是从我的一个大一点的项目中摘取出来的,尽管有所修改,但是难免有些问题,而且代码非常繁琐,没有简化,注释也写的不够全面……
easyx库
点击这里下载如下图,点击右上角黄色区域下载。
安装:如下图,安装对应版本即可
准备工作
新建项目文件
新建文件的时候要注意,文件后缀使用.cpp而不是.c,因为easyx库的一些东西使用了C++,所以这样最为保险。
分析
我们先进行一定的分析,理一下思路。
void main()
{
//主函数
}
void set_map()
{
//地图的初始化
}
int play()
{
//游戏过程
}
int begin_menu()
{
//开始界面
}
int game_over()
{
//结束界面
}
素材分析
事实上,这个游戏的实现就是通过调用不同的图片来实现的。我收集了一些图片:
上代码吧
地图表示
#include <graphics.h>//引用easyx库
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
int map[6][6] = {
{
1,1,1,1,2,2},{
2,2,5,5,2,2},{
3,3,3,3,4,4},{
5,5,6,6,6,6},{
7,7,1,1,7,7},{
8,8,4,4,8,8} };
我们用数组来表示地图内容,数字分别代表图片。
开始界面
int begin_menu()
{
initgraph(1152, 648);//界面绘制
IMAGE menu;//开始菜单图片
loadimage(&menu, _T("begin_menu0.jpg"), 1152, 648);
IMAGE shuoming;//游戏说明
loadimage(&shuoming, _T("begin_menu01.jpg"), 1152, 648);
putimage(0, 0, &menu);
MOUSEMSG mouse;
MOUSEMSG mouse2;
int x2, y2;
int x, y;
while (1)
{
mouse = GetMouseMsg();
if (mouse.uMsg == WM_LBUTTONDOWN)//左键按下
{
x = mouse.x;
y = mouse.y;//鼠标坐标
if (x <= 635 && x >= 461 && y >= 185 && y <= 238)//开始游戏
{
break;
}
else if (x <= 635 && x >= 461 && y >= 281 && y <= 330)//说明
{
cleardevice;
putimage(0, 0, &shuoming);
while (1)
{
mouse2 = GetMouseMsg();
if (mouse2.uMsg == WM_LBUTTONDOWN)
{
mouse2 = GetMouseMsg();
x2 = mouse2.x;
y2 = mouse2.y;
if (x2 <= 228 && x2 >= 52 && y2 >= 15 && y2 <= 65)//返回
{
putimage(0, 0, &menu);
break;
}