[Visual Studio]MFC游戏开发之回合制对战系统_by书訢

2023-10-31 02:10

本文主要是介绍[Visual Studio]MFC游戏开发之回合制对战系统_by书訢,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引子:

感谢阅读

接下来一段时间书訢(xin)会为大家定时更新总结讲解前一段时间刚刚结束的MFC实训项目--回合制对战游戏

希望作为读者的你们可以多多关注我的作品,并留言或者加我qq一起学习

若需转载请注明来处:http://blog.csdn.net/SX_csu2016sw

希望你们多多留言,你们的鼓励与指出的不足都是懒癌青年前进的动力


介绍一下自己:

中部地区某985软件工程在读,2016级入学目前即将大二,希望通过CSDN治疗懒癌的青年


1.为什么要写MFC系列的博客呢?

因为之前自己因为要做MFC游戏但是苦于找资料学框架真的是很难受,希望我这段时间的总结和讲解在未来可以帮助和之前我一样的苦逼孩子吧

因为我在这个项目中产生了一些可以迁移的idea,或许会帮助到我们做其他语言的项目中去啦~

2.项目背景:

前段时间听说要用MFC制作游戏,心里还是很崩溃的,因为我自己主语言是java,C++除了考试分数比较好看以外真的是比较尴尬。

但是虽然C++比较生疏,而且MFC之前没有接触过但是最后项目完成得还是不错的23333

语言相通,框架熟悉一些基础操作其实还是挺简单的,所以深入一门语言真的很重要!一通百通大概就是这个感觉吧


3.项目截图,以及三大功能分区介绍:

登录注册模块

登录注册实现的功能:1.实现注册,并对用户的神奇操作进行判断,比如密码不一致,不能为空,已注册....等情况进行处理

2.实现登录进入到第二个模块,选择模块





选择模块

选择模块分为三个子模块:

1.选择人物模块

2.选择场景模块

3.冒险模式模块

1.选择人物模块:

点击选择人物旁边的人物图片即可进入选择人物界面,如下一张图片所示,点击男女头像即可出现人物名字,技能,背景介绍

2.选择场景模块:

这边书訢从网页的图片展示得到灵感,使得MFC实现了web上用js才能实现的效果,同时代码也十分简单,之后会讲解滴

这里就是移动到哪张图片上就会显示该图片的大图在指定位置上,点击小图之后选定场景,再次移动不会改变大图的显示

3.冒险模块:

这边分别对应春夏秋冬黑夜五个地图,同时黑夜使用了迷雾算法,实现了无缝拼接迷雾模式的体验 

如图,黑夜中我们的人物在走动,遇到怪物可以选择攻击,虽然我们是战士,但是我们的攻击竟然是远程的!

哈哈按下A键即可攻击,可见最后几张秋天地图(红色背景)当然我们的技能是有CD的,同时怪物还有几率是会闪避的~

地图的梯子,台阶都是使用了蒙版图来实现,才实现人物可以爬梯子,之后会再仔细讲解哦

细心的你大概会发现,背景上有流星,有枫叶飘动....这些处理之后也会讲到哦~

最后当我们人物走过光线以后我们就会进入到回合制对战,与龙王开战啦~




回合制对战模块

其实当时我们的实训要求只需要实现回合制对战就可以了,奈何我们比较会玩2333我就做了之前的东东,回合制对战模块是我室友做的,因为比较吃时间和耐心所以我就偷懒一丢丢都没有参与,当然了不用担心实现不了,因为需要用到的技术我会在之前就讲解了,而且室友这个代码写的有点多,而且图片切的不太好

但是效果是很棒的哦,纯MFC帖100多张图来实现一些动画,一堆一堆的变量23333

不多说上图!

A技能一,向前突击,并放出一个火球

S技能二,召唤剑雨,从字斜向下将字划开,并实现柔和动画效果

D技能三,大技能,召唤双剑将人物送上太空,BUG,BUG,人物满血哈哈,见图~



项目总结

这是我用echarts做的项目各个模块代码分部图,代码不是很多,因为我删节了比较多可重用的代码,并进行了简单的封装

接下来的日子这样安排吧

1.实现登陆,实现注册来进行MFC基础操作的总结与讲解

2.通过讲解我是通过了什么骚操作实现了不用其他框架斌不过用几行代码就实现的好看的界面显示效果

3.讲解冒险模块的一些核心操作,不用MFC和C++利用这些思想也可以实现游戏功能,以及一些效果的方法。

当然,肯定会从一步一步展示项目的生成的啦,并且肯定会提供一些可迁移的思想到我们其他语言,其他项目中去啦~


多多评论,多多交流~因为我等级还没有到,所以整个100MB+的项目暂时还不能上传给大家,之后我会将图片,背景音乐等资源与代码分开,上传使得大家都可以进行体验我这个不够完美的孩子~


这篇关于[Visual Studio]MFC游戏开发之回合制对战系统_by书訢的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/312096

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要