我在Visual C++ 2010中制作了一个RoGuiLK,如何加快打印速度? 我试图在Visual C++ 2010中制作一个恶作剧游戏,它包括每次玩家移动时打印出一个屏幕。不幸的是,它使用8000个字符,因此每次刷新都需要一秒钟左右的时间来打印出来。这看起来可能不多,但考虑到游戏中涉及的动作数量,这一数字加起来就足够了

我在Visual C++ 2010中制作了一个RoGuiLK,如何加快打印速度? 我试图在Visual C++ 2010中制作一个恶作剧游戏,它包括每次玩家移动时打印出一个屏幕。不幸的是,它使用8000个字符,因此每次刷新都需要一秒钟左右的时间来打印出来。这看起来可能不多,但考虑到游戏中涉及的动作数量,这一数字加起来就足够了,c++,visual-studio,C++,Visual Studio,我尝试过取消与stdio的同步,将所有字符编译成一个字符串,然后用cout打印字符串,用_putch;打印字符;,但每种方法的打印时间都很长。我反复尝试打印一个不变的字符串,以测试是否是其他原因导致了延迟,但当唯一的任务是打印时仍然存在延迟 我的问题是,我是否可以尝试任何可能加快这一进程的方法?我的一个朋友提出了一些建议,值得一试吗?如果是的话,我会怎么做,如果不是,我还能尝试什么呢?我同意玉米秸秆。然而,如果你想做一个纯控制台游戏,我建议你利用内置的ctime库。从SDL1.2之类的库或源代码

我尝试过取消与stdio的同步,将所有字符编译成一个字符串,然后用cout打印字符串,用_putch;打印字符;,但每种方法的打印时间都很长。我反复尝试打印一个不变的字符串,以测试是否是其他原因导致了延迟,但当唯一的任务是打印时仍然存在延迟


我的问题是,我是否可以尝试任何可能加快这一进程的方法?我的一个朋友提出了一些建议,值得一试吗?如果是的话,我会怎么做,如果不是,我还能尝试什么呢?

我同意玉米秸秆。然而,如果你想做一个纯控制台游戏,我建议你利用内置的ctime库。从SDL1.2之类的库或源代码学习如何使用实体系统处理基于时间的硬编码事件。有许多有效的方法来存储这些字符并立即打印它们。或者您可以使用SDL,使游戏窗口看起来像一个控制台,并将所有内容作为光栅图形处理。

您可能需要执行特定于平台的操作。我可能会建议考虑使用,并且。ncurses可能有用,但我从未尝试过。我建议您完全离开控制台,开始使用实际的光栅图形,可能使用SDL或SFML之类的库。我没有很多编程经验,所以我不知道图形库是否可以提高绘图性能,减少绘图量。例如,如果要移动一个角色,则移动该角色而不重新绘制整个背景。您需要一个外部库,允许在控制台中进行x、y定位。从未使用控制台绘制复杂场景,但8000个字符的1看起来相当慢。在我的系统Win10 VS2015上打印一串8K字符并清除控制台100次后,通过cout大约需要25秒,通过printf大约需要13秒。你能给我们看一下你的代码吗?但是正如Comstacks所指出的,标准输出流对于您想要完成的任务来说可能是错误的工具。无论如何,您应该看看实际使用控制台而不是抽象字符流的系统特定功能。欢迎使用StackOverflow!不幸的是,这并不能真正回答问题。如果这是一个普通的讨论论坛,您的回答可能没问题,但StackOverflow有点不同,它是一个问答网站。一般来说,答案应该是完整的,并回答所提出的问题。