C\C++开发的经典魔塔小游戏--(3)主要逻辑处理,角色控制
对于一个游戏来说,最重要的是什么? 没错,是充钱,充钱,再充钱! 当然,游戏本身也要能动弹,不然钱充的不流畅。
所以,我们来看看如何流畅的处理逻辑。 对于一个界面化的小游戏来说,最主要的就是角色的移动,我们通过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)主要逻辑处理,角色控制相关推荐
- C\C++开发的经典魔塔小游戏--(1)图形库的使用
最近突发奇想,想起了当年和小伙伴们一起奋斗在村里黑网吧的日子.于是乎,萌发了动手写一个小游戏的念头.这个经典的小游戏名字叫"魔塔".大致就是你是一个骑士什么的,深入魔塔拯救大妹子的 ...
- C\C++开发的经典魔塔小游戏--(4)楼层控制,背景音乐,个人元素
楼层切换是游戏中必不可少的一个元素,总不能一直待在某一层,这样就无法享受通关的快感,在原本的设想中,我打算画十层地图,并且每层地图都添加一些新的素材进去,后来发现,太过繁琐,于是这个游戏就成了一个半成 ...
- C\C++开发的经典魔塔小游戏--(2)制作地图以及画出地图
这篇文章主要介绍如何制作以及画出地图,顺便会填充一些个人认为有趣的东西介绍给大家. C用来写图形化界面其实是一个很费力的过程,但是面向过程的语言结构,让人在做一些逻辑处理的时候更加的清晰,而不像C++ ...
- python3.7魔塔游戏_基于pygame的开发:魔塔小游戏开发
前言 第一次写博客,如果写的不好欢迎评论指正. 前端时间跟着廖雪峰大神的教程学习了python,本着"实践是检验真理的唯一标准",我尝试着使用pygame库来开发经典的策略RPG& ...
- 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2)
导语 上一期我们带大家完成了魔塔游戏每一层的初始化画面的制作: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(1) 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类 ...
- 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(3)
导语 上一期我们主要带大家写了勇士类,以及勇士与一些简单的地图元素接触时所触发的事件: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2) 这一期我们会带大家进一步复现我们的魔塔小 ...
- Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏
开发工具 Python版本: 3.7.4 相关模块: pygame模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 首先, ...
- Python游戏开发,Pygame模块,Python从零开始带大家实现魔塔小游戏
前言 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类的定义与其基础行动的实现,行动过程中触发不同层的切换等功能. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本: 3. ...
- 基于JavaSwing开发魔塔小游戏 课程设计 大作业
基于JavaSwing开发魔塔小游戏: (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk1.6 运行效果图: 基于JavaSwing开发魔塔小游戏: (大作业 ...
最新文章
- Blender多米诺骨牌动画学习教程 The Impossible Domino Run in Blender
- Android View篇之自定义验证码输入框
- PuTTY的下载、使用和设置,并推荐同类佳软——MobaXterm
- Linux系统基本命令之vim编辑器的使用
- pve安装黑群晖直通硬盘_在Proxmox VE(PVE)安装黑群晖
- 第二天学习Java的笔记
- QDoc包括图片includingimages
- GPU Gems1 - 2 水刻蚀的渲染
- 安装网站+服务器连接失败,为什么我都安装完成后是服务器连接失败啊
- 创建docker容器的命令
- zookeeper之理论基础
- linux百分比查看文件,Linux 如何查看内存使用率百分比?
- showdialog url访问页面_URL的优化方法
- linux下安装mysql5.7.11全纪录_记一次linux下安装mysql5.7
- k8s节点假死排查记录
- CSDN上传资源无法设置积分了吗
- 高低温测试试验方法有哪些?
- 长沙学院计算机二级报名,湖南计算机等级考试报名地点
- JavaWeb开发前景
- 相对路径与绝对路径的写法及区别