我想使用语言C来编写一些简单的Mario式游戏。但是,老实说,我不知道该怎么做,而且我无法找到免费的教程,这是免费的。

但是对于Actuall问题,到目前为止,我只写了Winapi程序,因此所有活动处理和用户输入均由OS处理,最低限度的工作,但要开发游戏,例如带有非矩形按钮,动画等的菜单,因此,我想,Winapi Taht中没有这样的事情可以帮助我解决这不仅仅是一些基本的例程鼠标指针位置和按键。

因此,编写游戏以通过操纵玩家,敌人甚至背景的对象而不是仅仅将DirectDraw用于屏幕的DirectDraw来编写游戏引擎的整个部分的正确方法?

编辑:我实际上想学习如何从头开始编写游戏,因为它必须是很棒的编程体验,如果您考虑像DOS指挥官Keen这样的游戏,没有框架或库,但仍然很棒。

有帮助吗?

解决方案

一个很好的方法是看看SDL库。我并不是说这一定是2D游戏的最佳库,但是很容易开始,网络上充斥着教程和开源代码样本,用于使用SDL编写的简单自制2D游戏。

其他提示

我也建议SDL,但您绝对应该看看 Lazyfoo 教程,这很棒。

我也使用了SDL,但请尝试查看 hge. 。它至少需要DirectX 8.0,因此您的应用程序仅在Windows上工作,但是在他们的论坛上,您会发现有关如何将其移植到OpenGL的许多主题。我认为,HGE比SDL更容易学习,因为SDL是一个低级的库,您将必须学习如何自己处理许多事情。 HGE更加准备就绪。

当我开始编程时,我开始与Allegro一起做,回到旧的DOS时代。这是第一个与SVGA图书馆合作的可用图书馆,并获得了良好的Sprite支持。然后版本3来了,他们添加了对Windows的支持(使用GDI和Direct X,您可以在运行时选择要使用的引擎)。 Linux港口栩栩如生,一切都很好。

这是一个非常基本的2D库,它将教您图形和动画的基础知识。现在,它甚至包含了非常需要的音频支持(好吧,我仍然记得V 2.9倍...)。它们是版本5的Beta,我认为这是一个有趣的项目,让您研究。

http://www.talula.demon.co.uk/allegro/

你们在说什么,Winapi的绘图例程较低。

尽管使用像SDL这样的已建立库可能是一个更好的主意,但您可以在没有太多困难的情况下为Winapi绘图例程创建自己的抽象。

然后,这只是创建具有所有绘图指令和解释输入的WARE循环的问题。对于2D游戏,这并不难。

简而言之,是的 - Winapi中没有什么可以帮助您的。但是,您可以在创建游戏本身的情况下可以构建数十种游戏引擎,这将需要大量的咕unt声。谷歌搜索会对您有所帮助。

(个人建议:尽管从技术上讲是3D引擎,但类似 统一 是一个出色的引擎,其中包括用于创建2D游戏的教程。 Unity不是C,但是 使您的生活变得更轻松...)

编辑:我实际上想学习如何从头开始编写游戏,因为它必须是很棒的编程体验,如果您考虑像DOS指挥官Keen这样的游戏,没有框架或库,但仍然很棒。

这实际上不太正确。 Commander Keen(和任何DOS游戏)确实使用库:DOS,BIOS等提供的库。没有一种或另一种形式的库,您将无法对C进行任何有用的事情。想要将所有低水平的细节留给其他人。

我建议 快板 作为开始游戏编程库。

看看这个 游戏开发

他们确实拥有与游戏编程和许多初学者有关的大型资源。 SDL很好,但是您应该考虑在开始编码之前,甚至在开始考虑使用的API/LIB之前学习基本游戏技术。

清除您需要多少“智能”(KI),考虑在早期加载/节省时间,……如果您想完成项目,您应该牢记很多事情。您需要游戏编辑器吗? (也..工作)声音/图形呢?自己写所有这些东西将需要大量时间(如果您没有经验)。创建内容是另一个大问题,如果您完全做到这一点,可以花费大量时间。

也许这将帮助您了解一些开发人员,因为这将使您了解他们的引擎如何工作。像这样(过时) 开发小子

几天前,我刚刚开始了一个类似的项目,您可以在 github.
它应该给您一些关于游戏结构的想法。以及带有碰撞的滚动2D地图上的一些细节(如果您想获得100%的错误,事实证明这很复杂)。哦,它正在使用SDL,就像这里许多人已经提出的那样。

至于我,这是我的第一个C项目。但是我必须承认,我以前在Java和Python上做过类似的事情,因此,这是我快速学习C的好方法C,并且由于它的学习而不是任何生产性的东西,我都在使用普通的C99,这使任务甚至更有趣。

但是回到游戏,您确实需要考虑自己的设计 您开始编码,将其写在一张纸上,或者如果您像我一样,并且没有树木的东西在伪代码中写下它。

想一想尽可能多的游戏状态,没有什么比不得不重新实现整个播放器/地图/从头开始的东西更糟糕的了,因为您以前没有考虑过功能xyz。

设计非常重要,如果您没有目标,那么您的项目将达到失败的地步,就像我的 凝灰岩 确实,由于缺少音乐和会设计敌人等的人,它也失败了。

说到图形等,请记住,该游戏将不仅包括普通代码。如果您的图形不好,请在设计时考虑到这一点。因为当屏幕上唯一的彩色矩形上的东西时,您会很快失去动力。

动作街机冒险集 (最初以书籍出版)可能是关于如何编写2D侧滚动游戏的最完整教程之一。尽管是较旧的参考文献,但许多开发2D侧滚子的基础知识并未改变。

提供完整的源代码示例和一些开发侧滚动机的工具 下载. 。只有一个用于处理图形原始图的外部库。由于这是一个较旧的DOS程序,因此您可能必须使用DOS模拟器 DOSBOX 或修改更现代环境的示例。

我建议您浏览第1到第9章,并专注于第10至17章。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top