65.9K
CodeProject 正在变化。 阅读更多。
Home

SpaceWarrior - 一款 2D DirectDraw 游戏

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.82/5 (15投票s)

2006年12月19日

CPOL

3分钟阅读

viewsIcon

75441

downloadIcon

2858

一篇关于使用 DirectDraw 制作简单 2D 太空射击游戏的文章。

SpaceWarrior screenshot

引言

您是否读过/听说过 "Windows 游戏编程大师技巧",由 Andre Lamothe 撰写的书?

嗯,手里拿着这本书(或者在我的电脑里),让我得以深入了解 Windows 游戏开发的秘密和技巧。 这本书的作者决定分享他作为 Windows 游戏开发人员和程序员的 20 年经验。

在本书中,他涵盖了 Windows GDI 和 DirectX(DirectDraw、DirectPlay 和 DirectSound)的基础知识,并向读者展示了如何在 DirectX 下构建快速简单的 2D 游戏引擎。

根据这本书,我逐步构建了一个 DirectX 封装库,作为未来全功能 2D 游戏引擎的基础部分。

背景

我之前寻找终极游戏书的背景可以在任何“真正的程序员”的秘密愿望中找到 - 我们都想最终制作出游戏。 而且我们希望它做得很好...

您将在本书中找到更多关于以下内容的信息

  • Win32 应用程序基础知识
  • COM 和 DirectX 基础知识
  • 矢量光栅化和 2D 变换
  • 力反馈操纵杆
  • 声音和音乐
  • 算法、数据结构、内存管理和多线程
  • 计算机 AI 基础知识
  • 物理基础知识

而这仅仅是本书内容的一部分! 它涵盖了很多内容,可能需要几个月的时间才能理解,但仍然必须将其用作提醒,提醒人们在“游戏开发者世界”中可以(并且正在)完成某事的方式。

使用代码(如果你可以这样称呼它)

DXEngine.hDXEngine.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 敌人和另一种小行星类型。

© . All rights reserved.