对于一个游戏来说,最重要的是什么? 没错,是充钱,充钱,再充钱! 当然,游戏本身也要能动弹,不然钱充的不流畅。

所以,我们来看看如何流畅的处理逻辑。 对于一个界面化的小游戏来说,最主要的就是角色的移动,我们通过C\C++的一个函数了处理键盘的响应,以及一个句柄API来处理一些弹窗问题。话不多说 ,上代码!

userKey = _getch();switch (userKey){case'A':case'a':case'75'://当要去的地方是空地if (map[i][j - 1] == 1){map[i][j] = 1;map[i][j - 1] = 15;}// 魔塔游戏中,开门需要收集到钥匙才可以,我们因为素材问题//只使用了黄色和蓝色两种钥匙//吃钥匙if (map[i][j - 1] == 4){map[i][j] = 1;map[i][j - 1] = 15;role.Bule++;}//开门if (map[i][j - 1] == 2 && role.Bule > 0){role.Bule--;map[i][j] = 1;map[i][j - 1] = 15;}//蝙蝠if (map[i][j - 1] == 10){int ID = MessageBox(hwnd, "你遇到蝙蝠了 ", "是否攻击? ", MB_YESNO);if (ID == IDYES){//打架if (bloodPK(BIANFU) == true){map[i][j] = 1;map[i][j - 1] = 15;}else{int beginID = MessageBox(hwnd, "你死球了!", "花钱复活不?", MB_YESNO);}}}//遇到法师if (map[i][j - 1] == 18){int ID = MessageBox(hwnd, "你遇到法师了 ", "是否攻击? ", MB_YESNO);if (ID == IDYES){//打架if (bloodPK(FASHI) == true){map[i][j] = 1;map[i][j - 1] = 15;}else{int beginID = MessageBox(hwnd, "你死球了!", "花钱复活不?", MB_YESNO);}}}//遇到红水晶if (map[i][j - 1] == 13){map[i][j] = 1;map[i][j - 1] = 15;role.Attrack += 50;role.Defender += 30;}//遇到血瓶if (map[i][j - 1] == 6){map[i][j] = 1;map[i][j - 1] = 15;role.HP += 75;role.MP += 70;}//遇到绿豆豆if (map[i][j - 1] == 9){map[i][j] = 1;map[i][j - 1] = 15;role.LV += 1;role.Defender += 50;role.Attrack += 50;}//遇到红豆豆if (map[i][j - 1] == 8){map[i][j] = 1;map[i][j - 1] = 15;role.HP -= 70;role.MP -= 50;role.Defender -= 10;role.Attrack += 25;}//如果遇到怪物,那么你需要确定是否战斗,如果确认那么换位,并且扣除相应的血量//如果逃离 则怪物不会消失,一直存在//骷髅if (map[i][j - 1] == 11){int ID = MessageBox(hwnd, "你遇到骷髅了 ", "是否攻击? ", MB_YESNO);if (ID == IDYES){//打架if (bloodPK(KULOU) == true){map[i][j] = 1;map[i][j - 1] = 15;}else{int beginID = MessageBox(hwnd, "你死球了!", "花钱复活不?", MB_YESNO);}}else{cout << "此路不通!!!" << endl;}}//权杖if (map[i][j - 1] == 17){role.QZ += 1;map[i][j] = 1;map[i][j - 1] = 15;}//蓝瓶if (map[i][j - 1] == 7){map[i][j] = 1;map[i][j - 1] = 15;role.MP += 70;}//去下一层if (map[i][j - 1] == 16){if (floor == 2){for (int q = 0; q < 13; q++){for (int k = 0; k < 13; k++){map[q][k] = map2[q][k];}}}if (floor == 3){for (int q = 0; q < 13; q++){for (int k = 0; k < 13; k++){map[q][k] = map3[q][k];}}}Floor++;}//吃黄钥匙if (map[i][j - 1] == 5){map[i][j] = 1;map[i][j - 1] = 15;role.Yellow++;}//开黄门if (map[i][j - 1] == 3 && role.Yellow > 0){role.Yellow--;map[i][j] = 1;map[i][j - 1] = 15;}//遇到蓝水晶if (map[i][j - 1] == 14){map[i][j] = 1;map[i][j - 1] = 15;role.Attrack += 30;role.Defender += 55;}break;
是不是感觉清晰而又一目了然,没错,我们只需要让某个位图和角色位图发生移位就可以,如果是堵墙,那么就不让角色的坐标发生改变,如果是其他的一些东西,那么会发生一系列的判断和改变。
  int ID = MessageBox(hwnd, "你遇到骷髅了 ", "是否攻击? ", MB_YESNO);if (ID == IDYES){//打架if (bloodPK(KULOU) == true){map[i][j] = 1;map[i][j - 1] = 15;}else{int beginID = MessageBox(hwnd, "你死球了!", "花钱复活不?", MB_YESNO);}}
这一段代码是一个弹窗的显示,MB_YESNO表示判断结果是 是或者 否 messagebox 表示显示弹窗标题和内容。如果想使用这个句柄,那么你需要有这么一句声明:
hwnd = initgraph(55 * 14, 55 * 13);
表示弹窗是显示在这个界面之上。 当然,做了这些处理之后,我们可以在开头添加一些东西,下节我们再讲解。

C\C++开发的经典魔塔小游戏--(3)主要逻辑处理,角色控制相关推荐

  1. C\C++开发的经典魔塔小游戏--(1)图形库的使用

    最近突发奇想,想起了当年和小伙伴们一起奋斗在村里黑网吧的日子.于是乎,萌发了动手写一个小游戏的念头.这个经典的小游戏名字叫"魔塔".大致就是你是一个骑士什么的,深入魔塔拯救大妹子的 ...

  2. C\C++开发的经典魔塔小游戏--(4)楼层控制,背景音乐,个人元素

    楼层切换是游戏中必不可少的一个元素,总不能一直待在某一层,这样就无法享受通关的快感,在原本的设想中,我打算画十层地图,并且每层地图都添加一些新的素材进去,后来发现,太过繁琐,于是这个游戏就成了一个半成 ...

  3. C\C++开发的经典魔塔小游戏--(2)制作地图以及画出地图

    这篇文章主要介绍如何制作以及画出地图,顺便会填充一些个人认为有趣的东西介绍给大家. C用来写图形化界面其实是一个很费力的过程,但是面向过程的语言结构,让人在做一些逻辑处理的时候更加的清晰,而不像C++ ...

  4. python3.7魔塔游戏_基于pygame的开发:魔塔小游戏开发

    前言 第一次写博客,如果写的不好欢迎评论指正. 前端时间跟着廖雪峰大神的教程学习了python,本着"实践是检验真理的唯一标准",我尝试着使用pygame库来开发经典的策略RPG& ...

  5. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2)

    导语 上一期我们带大家完成了魔塔游戏每一层的初始化画面的制作: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(1) 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类 ...

  6. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(3)

    导语 上一期我们主要带大家写了勇士类,以及勇士与一些简单的地图元素接触时所触发的事件: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2) 这一期我们会带大家进一步复现我们的魔塔小 ...

  7. Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏

    开发工具 Python版本: 3.7.4 相关模块: pygame模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 首先, ...

  8. Python游戏开发,Pygame模块,Python从零开始带大家实现魔塔小游戏

    前言 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类的定义与其基础行动的实现,行动过程中触发不同层的切换等功能. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本: 3. ...

  9. 基于JavaSwing开发魔塔小游戏 课程设计 大作业

    基于JavaSwing开发魔塔小游戏:   (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk1.6 运行效果图: 基于JavaSwing开发魔塔小游戏:   (大作业 ...

最新文章

  1. Blender多米诺骨牌动画学习教程 The Impossible Domino Run in Blender
  2. Android View篇之自定义验证码输入框
  3. PuTTY的下载、使用和设置,并推荐同类佳软——MobaXterm
  4. Linux系统基本命令之vim编辑器的使用
  5. pve安装黑群晖直通硬盘_在Proxmox VE(PVE)安装黑群晖
  6. 第二天学习Java的笔记
  7. QDoc包括图片includingimages
  8. GPU Gems1 - 2 水刻蚀的渲染
  9. 安装网站+服务器连接失败,为什么我都安装完成后是服务器连接失败啊
  10. 创建docker容器的命令
  11. zookeeper之理论基础
  12. linux百分比查看文件,Linux 如何查看内存使用率百分比?
  13. showdialog url访问页面_URL的优化方法
  14. linux下安装mysql5.7.11全纪录_记一次linux下安装mysql5.7
  15. k8s节点假死排查记录
  16. CSDN上传资源无法设置积分了吗
  17. 高低温测试试验方法有哪些?
  18. 长沙学院计算机二级报名,湖南计算机等级考试报名地点
  19. JavaWeb开发前景
  20. 相对路径与绝对路径的写法及区别

热门文章

  1. Ubuntu kylin 14.04下的spark1.0.1安装
  2. 小丸子学Docker系列之——实战Dockerfile
  3. continue 当条件不问那么执行你所对比的这个参数
  4. windows系统各进程详解
  5. Word 2010 找不到 Endnote选项
  6. Python骚操作3
  7. python中的继承的初始化_python中子类继承父类的__init__方法实例
  8. FPGA进行多路并行插值滤波(多相滤波)的实现原理
  9. 网络篇 谈谈对学习网络的看法
  10. mapper-一对多,多对多等问题