我正在使用C.控制台编写游戏吗?

时间:2014-02-14 15:50:17

标签: c console 2d-games retro-computing

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

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

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

谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

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

如果您想要更高级的图片,我建议您在这里查看:How do you create a window in Linux with C++?

答案 1 :(得分:1)

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

您需要声明几个类型 HWND WNDCLASSEX 的变量,并调用一堆Windows API函数来初始化带有一些设置和诸如此类的东西。< / p>

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

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

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

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

希望这有帮助!

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

答案 2 :(得分:1)

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

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

  local declarations;
  And your program for the game;

  getch();
}

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

希望这个答案可以帮助你。