2

我正在使用 Game Maker 制作一些游戏,但我想使用 C 制作简单的游戏。我是一个新手 C 程序员。当我编码时,输出总是在 CMD Windows 控制台中。我可以制作一些简单的游戏,但总是在控制台中,这不是很灵活(没有滚动就无法制作动画)。当您运行更复杂的游戏时,会创建一个完整的新屏幕,而我实际上会与该屏幕进行交互。

所以我在使用 C 语言时遇到的问题是:这个新屏幕是如何加载的?我认为有一些 Windows API 可以创建新屏幕或其他东西。顺便说一句,在过去,我指的是 DOS 时代,你只是使用控制台,但你可以加载一个新的游戏画面。你怎么能做到这一点?

我想要一些研究根源的指南。我只是不想调用库 X 或使用 SDL。

谢谢你的帮助。

4

3 回答 3

1

由于您提到库 X,我假设您使用的是 Linux 系统。有几种不同的方法可以归档您的目标。如果您仍想使用控制台但涉及更多图形,您可以查看库 ncurses ( http://www.gnu.org/software/ncurses/ )。

如果你想做更高级的图形,我建议你看看这里:如何使用 C++ 在 Linux 中创建一个窗口?

于 2014-02-14T16:00:30.997 回答
1

C 编程可以追溯到 1970 年代,因此您可以考虑创建类似于那个时代的游戏。窗口或新屏幕由少数已经由开发人员编译和存储的预处理器指令加载。一个新的屏幕可以通过给出一些命令来实现:

  #include<stdio.h>
  #include<conio.h>
  void main()
  {

  local declarations;
  And your program for the game;

  getch();
}

这基本上做的是函数 getch(); 存储在(conio.h)中的将打开一个新窗口,它将显示输出,直到它从键盘获得一个值,即它显示输出,直到您按下键盘上的任何键。

希望这个答案对您有所帮助。

于 2014-02-14T16:19:20.943 回答
1

创建新的 Windows 可能会变得非常麻烦(即代码可能很复杂且难以阅读)。我将尝试给出一些高级别的概述,然后将您链接到加载基本窗口的好教程。

您需要声明几个HWNDWNDCLASSEX类型的变量,并调用一堆 Windows API 函数来使用一些设置和诸如此类的东西来初始化 Window。

完成此操作后,您需要进入一个处理所有窗口交互的循环,通常在循环内使用TranslateMessageDispatchMessage

您还需要实现一个回调过程来处理 Windows 事件,例如鼠标单击、关闭窗口等。这通常在LRESULT CALLBACK WndProcedure中完成。

我现在抛出了一堆新词和想法,几乎没有解释;查看本教程以获取我刚刚尝试解释的完整示例。

http://www.functionx.com/win32/Lesson01c.htm

(编辑:上面的链接现在已经失效了,所以这里有一个来自 Wayback Machine 的缓存链接https://web.archive.org/web/20190203182520/http://www.functionx.com/win32/Lesson01c .htm )

希望这可以帮助!

此外 - 这一切都假设您在 Windows 上基于您对 Windows API(即 windows.h)的评论。如果您使用的是 Linux,则需要使用 X。

于 2014-02-14T16:01:14.940 回答