有什么方法可以编写可在Windows和Linux上运行的命令行游戏?

时间:2018-09-24 23:40:15

标签: c++ linux windows c++11

我目前正在使用C ++进行太空侵略者游戏。我试图找出一种仅使用标准库来创建此游戏的方法,以便可以在Windows和Linux上运行它并获得相同的结果。

所以我的问题是,您可以仅使用编译后可在Windows和Linux上运行的标准库,以C ++编程控制台游戏吗?

2 个答案:

答案 0 :(得分:4)

轻松,不。

有终端控制代码,Windows和UNIX都支持其中一些。

两者之间存在一些共性和交叉之处。这将是很多工作,虽然我将是第一个欣赏这种工作的人,但我怀疑它是否会奏效。

您最好花一些时间使用SDL library之类的东西进行跨平台支持。如果这是核心要求,则可以使用SDL使它看起来像终端。

即使在各种UNIX风格(和终端)下,转义码也有所不同。 ncurses库掩盖了很多这种复杂性。

答案 1 :(得分:1)

不。 C和C ++标准库不包含执行以下任何任务的任何功能,所有这些功能对于图形控制台应用程序都是至关重要的:

  • 清除终端
  • 获取终端的大小(行和列)
  • 将终端光标移动到特定位置

在Windows系统上,这些功能可作为Console API的一部分使用。此API是特定于Windows的,在非Windows系统上不可用。

在Linux和其他UNIX系统上,这些功能是在终端仿真器中实现的,并且通常使用ncurses库进行访问。该库在非本地环境(例如Cygwin)以外的Windows上不可用。