我正在用C. Console编写游戏吗? [关闭]

问题描述 投票:2回答:3

我当时使用Game Maker制作了一些游戏,但我想使用C编写简单的游戏。我是一名新手C程序员。当我编写代码时,输​​出始终在CMD Windows控制台中。我可以做一些简单的游戏,但总是在控制台中进行,这不是很灵活(如果不滚动,就不能创建动画)。当您运行更复杂的游戏时,会创建一个完整的新屏幕,并且我实际上在该屏幕上进行交互。

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

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

感谢您的帮助。

c console 2d-games retro-computing
3个回答
1
投票

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

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


1
投票

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

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

  local declarations;
  And your program for the game;

  getch();
}

这基本上是功能getch();存储在(conio.h)中的文件将打开一个新窗口,并显示输出,直到它从键盘获取值为止;即,直到您按下键盘上的任何键,它才会显示输出。

希望此答案对您有帮助。


1
投票

创建新的Windows可能会变得很繁琐(例如,代码可能很复杂且难以阅读)。我将尝试给出较高层次的概述,然后将您链接到一个很好的教程,以加载基本窗口。

您需要声明几个类型为[[HWND和WNDCLASSEX的变量,并调用一堆Windows API函数以使用某些设置和其他方式初始化Window。

一旦完成,您需要输入一个处理所有窗口交互的循环,通常在循环内使用

TranslateMessage

DispatchMessage您还需要实现一个回调过程来处理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 API的评论(即windows.h)而假定您使用Windows。如果您使用的是Linux,则需要使用X。

© www.soinside.com 2019 - 2024. All rights reserved.