有没有一种方法可以让我编写一个可以在Windows和Linux上运行的命令行游戏? 我目前正在C++中进行空间侵略者游戏。我试图找到一种方法,只使用标准库来创建这个游戏,这样我就可以在Windows和Linux上运行它,并获得相同的结果 我的问题是,你能用C++编写一个控制台游戏,只使用标准库,当编译时,它将在Windows和Linux上运行?C和C++标准库不包含执行下列任务的任何函数,它们对于图形控制台应用程序是至关重要的: 清除终端 获取终端的大小(行和列) 将端子光标移动到特定位置

有没有一种方法可以让我编写一个可以在Windows和Linux上运行的命令行游戏? 我目前正在C++中进行空间侵略者游戏。我试图找到一种方法,只使用标准库来创建这个游戏,这样我就可以在Windows和Linux上运行它,并获得相同的结果 我的问题是,你能用C++编写一个控制台游戏,只使用标准库,当编译时,它将在Windows和Linux上运行?C和C++标准库不包含执行下列任务的任何函数,它们对于图形控制台应用程序是至关重要的: 清除终端 获取终端的大小(行和列) 将端子光标移动到特定位置,c++,linux,windows,c++11,C++,Linux,Windows,C++11,在Windows系统上,这些功能作为的一部分提供。此API特定于Windows,在非Windows系统上不可用 在Linux和其他UNIX系统上,这些函数是在终端仿真器中实现的,通常使用库进行访问。此库在非本机环境(如Cygwin)之外的Windows上不可用。很容易,不可用 有终端控制代码,其中一些在Windows和UNIX下都受支持 窗口: UNIX(ish): 两者之间有一些共同点和交叉点。这将是一项艰巨的工作,虽然我是第一个欣赏这项工作的人,但我怀疑这项工作是否会奏效 您最好花点时间

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

在Linux和其他UNIX系统上,这些函数是在终端仿真器中实现的,通常使用库进行访问。此库在非本机环境(如Cygwin)之外的Windows上不可用。

很容易,不可用

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

  • 窗口:
  • UNIX(ish):
两者之间有一些共同点和交叉点。这将是一项艰巨的工作,虽然我是第一个欣赏这项工作的人,但我怀疑这项工作是否会奏效

您最好花点时间使用类似的工具来实现跨平台支持。如果这是一个核心需求,也许可以使用SDL使其看起来像一个终端


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

OP可以使用一个复杂的ANSI转义码系统。Windows和UNIX终端都支持这些功能。建议您使用ncurses更好。@Kingsley?我记得有一些限制,尽管也许Windows10已经有所改进。@Swardfish开始进入非标准库领域,而OP并没有要求这样做。虽然NCRESS不是C/C++标准库的一部分,但它至少在大多数UNIX系统上提供。您可以做的是基于操作系统来分支图形逻辑。例如,您可以根据操作系统类型创建图形对象#ifdef\u linux\ugfx=LinuxGfx()#elif\u WIN32 gfx=Win32Gfx()或类似的东西
有没有一种方法可以让我编写一个可以在Windows和linux上运行的命令行游戏?
是的<代码>仅使用标准库否。可以。但这取决于你希望游戏有多复杂。越复杂,找到仅使用标准库的可移植解决方案的可能性就越小。@devdoesit您确定要忽略跨平台可用的库吗?@swardfish我必须为我的软件设计课学习。我也是这么说的thing@Joshua-我很确定旧版本的Windows(可能不是全套?)曾经支持某种转义序列。。。我对不得不使用它们有一些模糊的记忆。BSD Unix在20世纪80年代有一款基于终端的太空入侵者游戏。在9600个基点以下不是很有挑战性,但现在这应该不是问题。您不妨坚持使用ANSI转义序列,任何人将VT52连接到现代系统的可能性都很低。@Kingsley ANSI.SYS也许?不过,我不认为它是默认启用的。