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

SpaceWarrior - 2D DirectDraw 游戏 - 第二部分

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.95/5 (13投票s)

2007 年 1 月 3 日

CPOL

3分钟阅读

viewsIcon

148155

一篇关于创建简单 2D DirectDraw 游戏的文章(游戏元素)。

引言

在本教程的第一部分中,您已经了解了如何创建主游戏窗口。现在,由于我们有一个游戏场景,我们需要一个游戏故事,以及放置在该场景中的游戏角色。

故事

正如我们在第一部分中同意的那样,我们将创建一个简单的 2D 滚动游戏(太空射击游戏),通过这种方式学习构成游戏的事物。因此,游戏故事将很简单:您将驾驶星际飞船穿越小行星带,并与在游戏过程中攻击您的敌方不明飞行物战斗。现在,让我们看看如何构建这些游戏元素。

玩家

我决定使用一些 3D 建模软件来创建玩家的星际飞船及其动画。经过一番努力,结果如下(正如您所看到的,我不是建模专家)

The Player - Screenshot

由于这是一个滚动射击游戏,玩家将向左、向右、向上或向下移动,或者这四个动作的某种组合。但是,我只创建了向左和向右移动的动画。那么,这张图片到底代表什么呢?它被称为游戏角色的图块集图像。在游戏中,它将被称为“精灵”。它与静态图像不同,因为它具有多个图像,这些图像在屏幕上逐个播放时构成一个动画。图像数量越多,动画就会越流畅,但它会占用更多的系统内存来保存它。

小行星

我也对小行星进行了建模,并得到了以下图块集

The Asteroid - Screenshot The Asteroid - Screenshot

小行星有一个“旋转”动画,并且可以自由地向任何方向飞行,但在这种情况下,我决定让它从屏幕顶部掉落到底部。如果它击中星际飞船足够多次,它将摧毁它。此外,如果星际飞船向小行星发射等离子并击中它,它将被摧毁。所以,我们需要这个爆炸动画。

爆炸

我在互联网上找到了免费的“explosion.gif”,一个动画爆炸 GIF 图像,并提取了帧,得到了以下结果

The Explosion - Screenshot

当星际飞船击中小行星(并摧毁它)或反之亦然时,就会发生爆炸。

不明飞行物

UFO 建模的图块集看起来像这样

The UFO - Screenshot

现在,UFO 的移动将取决于其他一些事情,但我们现在可以这样说,它可以在任何方向移动。它会攻击玩家,但不会受到小行星的损坏,也不会损坏它们。

等离子

等离子是一个简单的图像,在互联网上找到(也是免费的),看起来像这样

The Plasma - Screenshot The Plasma - Screenshot

等离子由玩家星际飞船或 UFO 发射。它只能向上或向下移动,这就是为什么有相同图像的两个版本的原因。由于它的移动速度非常快,我认为对这样的东西进行动画处理会很愚蠢。

星空

游戏背景星空被生成为不同强度随机放置的白色像素,如下所示

The Starfield - Screenshot

结论

现在,我们已经对游戏中的每个感兴趣的元素进行了建模、准备和解释。您可能会注意到这里缺少声音部分,因为我还没有在游戏中添加任何声音,但当我这样做时,我会写一篇关于该主题的单独文章。在下一部分,我们将看到如何初始化和关闭 DirectX 子系统。

© . All rights reserved.