1、说明:

简易实现了走迷宫小游戏。

2、基本原理:

(1)用二维数组构建地图

(2)初始化函数确定玩家坐标位置并绘制玩家

(3) 绘制函数根据二维数组的遍历不断更新玩家位置和判断是否到达终点

(4)更新函数通过键盘输入改变玩家位置不断把玩家坐标进行更新

(5)主函数利用死循环不断实现更新函数与绘制函数的执行

3、运行结果展示:

4、代码展示:

#include<graphics.h>
#include<conio.h>struct Player {int i;int j;
};Player player;char map[25][26] = {//绘制地图"wwwwwwwwwwwwwwwwwwwwwwwww","mpppppppppppppppwwwwwpppw","wpwwwwwpwwwwwwwpwpppwpwpw","wpwpppwpwpppppppwpwpwpwpw","wpwpwwwpwpwwwwwwwwwpwpwpw","wpwpppppwpppwpppppppwpwpw","wpwpwwwpwwwpwpwwwwwwwpwpw","wpwpwpwpwpppwpppppppppwpw","wpwpwpwpwpwwwpwpwwwpwwwpw","wwwpwpwpwpppwpwpwpwpppwpw","wpwpppwpwwwpwpwpwpwpwpwpw","wpwwwwwpwpppwpwpwpwpwpwww","wpwpppwpwpwwwpwpwpwpwpwpw","wpwpwpwpwpppwpwpwpwpwpwpw","wpppppwpwwwpwpwpppwpwpwpw","wpwwwwwpwwwwwpwwwwwpwpwpw","wpwpppppppppppppppwpwpwpw","wwwpwpwpwpwwwwpwwpwpwpppw","wpwpwpwpwppppwpwwpwpwwwww","wpwpwpwpwwpwpwpwppwpppppn","wpwpwpwpwppwpwpwpwwwwwwww","wpwpwpwpwpwwpppwppppppppw","wpwwwpwpwwwwwwwwwwwwwwwpw","wpppppwpppppppppppppppppw","wwwwwwwwwwwwwwwwwwwwwwwww" , };void startup()
{int i, j;initgraph(640, 640);//    setbkcolor(YELLOW);BeginBatchDraw();for (i = 0; i < 25; i++)for (j = 0; j < 25; j++)if (map[i][j] == 'm'){//找到玩家,将坐标赋值给全局变量playerplayer.i = i;player.j = j;map[i][j] = 'p';}
}void show()
{cleardevice();int i, j;for (i = 0; i < 25; i++){for (j = 0; j < 25; j++){if (map[i][j] == 'w'){setfillcolor(RED);setlinecolor(RED);fillrectangle(j * 20, i * 20, (j + 1) * 20, (i + 1) * 20);}else if (map[i][j] == 'p'){setfillcolor(YELLOW);setlinecolor(YELLOW);fillrectangle(j * 20, i * 20, (j + 1) * 20, (i + 1) * 20);}else if (map[i][j] == 'n'){setfillcolor(YELLOW);setlinecolor(YELLOW);fillrectangle(j * 20, i * 20, (j + 1) * 20, (i + 1) * 20);}else if (map[i][j] == 'm'){setfillcolor(GREEN);setlinecolor(GREEN);fillrectangle(j * 20, i * 20, (j + 1) * 20, (i + 1) * 20);}if (player.i == 19 && player.j == 24){setbkmode(TRANSPARENT);//显示透明文字settextcolor(GREEN);//设置字体颜色settextstyle(50, 0, _T("宋体"));//设置字体大小,字体outtextxy(320, 320, _T("游戏胜利"));//输出字体}}}//绘制玩家图像i = player.i;j = player.j;setfillcolor(GREEN);setlinecolor(GREEN);fillrectangle(j * 20, i * 20, (j + 1) * 20, (i + 1) * 20);FlushBatchDraw();
}void update()
{char input = _getch();if (input == 'a' || input == 's' || input == 'd' || input == 'w'){//有效按键int goal_i = player.i;int goal_j = player.j;int goalNext_i = goal_i;int goalNext_j = goal_j;if (input == 'a'){goal_j = player.j - 1;goalNext_j = player.j - 1;}else if (input == 'd'){goal_j = player.j + 1;goalNext_j = player.j + 1;}else if (input == 'w'){goal_i = player.i - 1;goalNext_i = player.i - 1;}else if (input == 's'){goal_i = player.i + 1;goalNext_i = player.i + 1;}if (map[goal_i][goal_j] == 'p' || map[goalNext_i][goalNext_j] == 'p'){//如果玩家的目标位置是path,目标的前一个位置也是path,那么player.i = goal_i;//玩家移动到目标位置player.j = goal_j;}if (map[goal_i][goal_j] == 'n'){//如果玩家的目标位置是n那么player.i = goal_i;//玩家移动到目标位置player.j = goal_j;}}else//可能出现的情况都考虑到,其他情况就不做处理return;
}int main()
{startup();while (1){show();update();}return 0;
}

(本专栏将会展示部分代码骑士的初期学习编程的小游戏作品用于学习和纪念,将会不定期更新,敬请期待……)

C++游戏编程--基于EasyX图形库--实现走迷宫小游戏相关推荐

  1. c语言/c++大作业基于easyx图形库自制RPG类型小游戏代码(附源码)

    目录 一.游戏玩法 二.完整代码 三.部分细节 透明化人物背景 关于easyx库中怎样贴出透明图片 地图的链表实现 移动检测 碰撞检测 总结 前言: 花两天边看easyx文档边学边写的期末小作业. 学 ...

  2. c语言跑酷游戏,C++用easyx图形库实现障碍跑酷小游戏

    用easyx图形库做一个简单的c++小游戏-障碍跑酷 开发环境:visual c++6.0 库:easyx图形库 下载地址 当时我原本是想模仿做一个Flappy Bird的小游戏,在想如何写的时候突然 ...

  3. c语言使用easyX图形库制作打气球小游戏

    大一c语言使用easyX图形库制作打气球小游戏 如果你是入门easyX图形库,那么这个打气球小游戏将会是和不错的入门项目选择,easyX开创了可视化窗口,使用户更加直观的了解到对象的变化,总代码以及素 ...

  4. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

  5. 用 Dev-C++ 编写简单的走迷宫小游戏

    用 Dev-C++ 编写简单的走迷宫小游戏 前言 基础版 优化版 前言 以下是显示效果 B站视频讲解:[小游戏]用 Dev-C++ 编写简单的控制台走迷宫小游戏 [小游戏]用 Dev-C++ 编写简单 ...

  6. C++写的是男人就下一百层小游戏,基于EasyX图形库(本人菜鸟)

    是男人就下一百层 小游戏 游戏整体源代码已打包,在最下面 首先建立一个board类: #pragma once #ifndef BOARD_H_ #define BOARD_H_ const int ...

  7. 基于easyX制作的C语言小游戏

    目录 游戏内容 开始界面 加载界面 游戏界面 游戏胜利界面 选择难度界面 游戏介绍界面 上代码! 头文件 定义数据 自定义函数 全局变量 窗口类函数 开始界面 加载窗口 游戏界面 难度选择窗口 游戏介 ...

  8. [埋坑系列] 基于QT/C++的杰瑞走迷宫小游戏 :1.大体构造

    本次数据结构课程设计本打算做老鼠走迷宫,毕竟也比较喜欢迷宫,也有过经验, 框架大体设计好之后发现挑战性并不强,对这些算法都有一些经验,所以决定先去搞树做词典,在此埋个坑 |_ _ _QT图形界面 | ...

  9. 求助FC上的一个c++代码实现丧心病狂的走迷宫小游戏!

    这篇文章主要介绍了基于C语言实现简单的走迷宫游戏,用到双向队列,方便在运行完毕后输出经过的点,感兴趣的小伙伴们可以参考一下,本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 要 ...

  10. C语言实现一个走迷宫小游戏(深度优先算法)

    补充一下,先前文章末尾给出的下载链接的完整代码含有部分C++的语法(使用Dev-C++并且文件扩展名为.cpp的没有影响),如果有的朋友使用的语言标准是VC6的话可能不支持,所以在修改过后再上传一版, ...

最新文章

  1. 中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.3 人工智能在各医学亚专科的发展态势...
  2. 基于JWT(Json Web Token)的ASP.NET Web API授权方式
  3. Windows创建类似.project只有后缀名的文件的方法
  4. table 鼠标移上去改变单元格边框颜色。
  5. 子弹创建及发射 Learn Unreal Engine (with C++)
  6. 【Python爬虫学习笔记12】Ajax数据爬取简介
  7. 月租最便宜的手机卡_有什么价格便宜,月租少,流量多,并且可以从旧套餐转入的手机卡推荐?...
  8. 使用h5py操作hdf5文件
  9. 组策略彻底解决windows 2003 终端数
  10. (转)内存整理的原理 整理自CSDN
  11. (转)使用Xtrabackup备份MySQL数据库(续)
  12. 某处发现百分百恢复覆盖的分区数据恢复方法(掌握)
  13. win10快速关机_如何实现Windows定时关机(win7/win10)
  14. ps切图教程 android,PS怎么切图 PS最新版本切图教程
  15. CDQZ_Training 2012-5-10 舞蹈课
  16. NAT下网络流量监控解决方案
  17. MongoDB安装中使用配置文件的方式启动服务时出现错误:forked process: 2784 ERROR: child process failed, exited with 100
  18. 机器人杆长标定_机器人标定系统
  19. 关于Chrome浏览器调用IE浏览器
  20. hcfax2e伺服驱动器说明书_松下伺服驱动器说明书.pdf

热门文章

  1. mac中有关delete删除键的5种用法
  2. Android——打电话(选择指定手机卡)、发短信
  3. 成语小秀才云开发代码 成语答题小程序源码
  4. WordPress站点被挂马,如何预防、检测和应对?
  5. 你的闺蜜在减肥,隔壁老王在练腰
  6. A granted authority textual representation is required
  7. FlashFXP,FlashFXP的详细介绍
  8. 新氧科技CEO金星直播背后:助推产业线上化,打造医美“新基建”
  9. jQuery 中console.log什么意思
  10. prisma使用mongodb副本集群报错引发的一些列问题