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

一个 C++ 打砖块游戏克隆,代码行数少于 64 行

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.96/5 (20投票s)

2007 年 2 月 23 日

GPL3

2分钟阅读

viewsIcon

91500

downloadIcon

2645

我提出了一个简单的 C++ 打砖块(或 Arkanoid)游戏版本,代码量很少。

Screenshot - CImgBreakout.jpg

引言

我在这里提出了一个跨平台的 C++ 版本的著名打砖块游戏(或者如果你喜欢,叫 Arkanoid)。 这里有趣的是,它只用了不到 64 行 C++ 代码。 虽然代码非常紧凑,但仍然易于阅读。 秘诀是什么? 我使用 CImg 库来执行图像上的所有必要操作。 CImg 库是一个易于使用的 C++ 模板图像处理库,它的特点是完全包含在一个头文件中。 这意味着只需包含一个头文件,您就可以处理图像并对其执行许多操作(显示、过滤、绘图等)。

这项工作延续了我之前提交的 “用少于 128 行代码实现的俄罗斯方块”,它也已经在 CodeProject 上发布。

解释

代码分为两个不同的部分。 第一部分使用 CImg 库的原始绘图函数从头开始创建游戏图形(彩色砖块、球、球拍和背景图像)。

第二部分包括主事件循环,捕获用户的事件并计算球/球拍的运动和可能的碰撞。 实际上,这里没有什么特别困难的地方,但所有代码都以非常紧凑的方式编写。

这是一个很好的方式来了解使用 CImg 库编写小型动画是多么简单。 同样值得注意的是,源代码是跨平台的,您可以在 Unix 或 Mac OS X 上编译它,而无需修改任何一行代码。 我希望这可以为那些因为在 C++ 源代码中进行基本图像操作所需的相对代码复杂性而感到沮丧的人提供一些想法。

提议的存档

提议的存档包含游戏的少量源代码(文件 'breakout.cpp'),编译所需的 CImg 库头文件 'CImg.h',以及编译后的可执行文件 (Win32) 和用于编译的 Visual Express 2005 解决方案。 因此,该存档应该是自包含的。

希望您会喜欢它。

历史

  • 2007 年 2 月 23 日:首次发布
© . All rights reserved.