SpaceWarrior - 一款 2D DirectDraw 游戏
一篇关于使用 DirectDraw 制作简单 2D 太空射击游戏的文章。
引言
您是否读过/听说过 "Windows 游戏编程大师技巧",由 Andre Lamothe 撰写的书?
嗯,手里拿着这本书(或者在我的电脑里),让我得以深入了解 Windows 游戏开发的秘密和技巧。 这本书的作者决定分享他作为 Windows 游戏开发人员和程序员的 20 年经验。
在本书中,他涵盖了 Windows GDI 和 DirectX(DirectDraw、DirectPlay 和 DirectSound)的基础知识,并向读者展示了如何在 DirectX 下构建快速简单的 2D 游戏引擎。
根据这本书,我逐步构建了一个 DirectX 封装库,作为未来全功能 2D 游戏引擎的基础部分。
背景
我之前寻找终极游戏书的背景可以在任何“真正的程序员”的秘密愿望中找到 - 我们都想最终制作出游戏。 而且我们希望它做得很好...
您将在本书中找到更多关于以下内容的信息
- Win32 应用程序基础知识
- COM 和 DirectX 基础知识
- 矢量光栅化和 2D 变换
- 力反馈操纵杆
- 声音和音乐
- 算法、数据结构、内存管理和多线程
- 计算机 AI 基础知识
- 物理基础知识
而这仅仅是本书内容的一部分! 它涵盖了很多内容,可能需要几个月的时间才能理解,但仍然必须将其用作提醒,提醒人们在“游戏开发者世界”中可以(并且正在)完成某事的方式。
使用代码(如果你可以这样称呼它)
有 DXEngine.h 和 DXEngine.cpp 文件,应该将它们添加到 Win32 项目中(而不是 MFC 项目)。 此外,最新的 DirectX SDK 不再支持 MS Visual Studio 6.0,因此您必须使用 MS Visual Studio .NET 环境。
基本上,它是这样的(但是,请不要笑)
DXEngine_Init(); // Loads DirectX modules DXEngine_Render(); // Your game code DXEngine_Deinit(); // Unloads DirectX modules
您可以使用许多 DXEngine
函数来
- 图像加载 (位图)
- 像素绘制
- 矢量图形绘制(线条、多边形)
- 填充矢量形状(填充多边形)
- 文本绘制
- 2D 变换(平移、旋转、缩放)
但是,尚未实现声音支持! 为什么? 我不知道... 我现在不想用。
您必须自己编写很多代码,但这是您的游戏,对吧? 请下载示例项目并浏览源代码,这是理解游戏开发问题的唯一方法。 我一点也没开玩笑。 没有办法写一篇文章来教你成为一名游戏程序员。
尽快拿到这本书(如果你不喜欢我的游戏),然后写你自己的! 肯定会是一个不错的选择,我知道。
关注点
在编写代码时,我学到了许多有趣/好玩/烦人的事情,并且在余生中看到了聪明/狂野/古怪的事情。 开玩笑... 我才刚开始玩得开心!!!
新年快乐,我的朋友...
历史
在这个版本的 Space Warrior 游戏中,我添加了 UFO 敌人和另一种小行星类型。