一、项目简介
之前很喜欢《元气骑士》这种风格的手机游戏,也想做一个类似的Roguelike游戏。对于刚学习了一些基本设计模式的小伙伴,可以把这个项目当作初步实践。
这次构建一个简单的通用游戏框架,使得游戏具有更强的灵活性与可扩展性供小伙伴们学习参考。
二、运行截图
三、项目源代码及编译说明
项目源代码:点击下载Dungeon1.0.1.zip
该项目解决方案下包含三个工程:Dungeon,Dungine和TinyXML2。
其中TinyXML2工程是为了把TinyXML2库打包成静态链接库方便使用,编译时直接编译整个解决方案即可。
Release模式下,编译成功后可执行文件将输出到Publish\目录下;
Debug模式下,编译成功后可执行文件将输出到Build\dist\Debug\目录下。默认采用Release模式编译,程序中有关调试信息的宏已关闭。
编译环境如下:
●Windows11Pro
●VisualStudio2022Community
●EasyX20220610
●FMOD0.2.2.7
四、项目实现
该项目包含游戏框架部分Dungine(DungeonEngine)和游戏主体Dungeon两部分。除了EasyX外,还使用了音频库FMOD,以及用于XML解析的TinyXML2。
▍4.1Dungine
该部分是一个较为通用的游戏框架,包括游戏中基本类型的定义,以及设备相关的封装,也包括一个简易的UI库。
▁4.1.1游戏对象
框架的核心部分之一是对游戏对象的抽象。对于游戏中需要的常见对象,比如角色、武器等,均使用了工厂模式和原型模式进行创建,并通过组件模式添加各种行为和属性。下面展示了游戏对象类和组件类的基本声明,项目中的具体实现要稍复杂一些。
GameObject有一个重要的成员m_isValid,因为删除对象并不是直接进行的,而是通过设置该标记,由场景类删除。
这里的AbstractObject是更一般的对象,包括对组件等的抽象,其提供了原型模式的两个Clone方法。作者:C语言_编程俱乐部https://www.bilibili.com/read/cv18727967/出处:bilibili