基于Windows控制台的游戏

时间:2016-03-19 17:01:18

标签: c++ windows console

所以,我正在制作游戏,我需要输入功能才能有截止日期,我希望这个时间显示在一个控制台角落里。 我有计时器在单独的线程上运行。 我想告诉用户他剩下多少时间,让我们说在第一行的末尾写一个varibale TimeLeft,但保持所有其他行完整。 那么是否有任何函数允许我在控制台窗口内的特定位置打印/显示/ cout变量。 使用C ++,Windows平台,控制台应用程序

1 个答案:

答案 0 :(得分:1)

在Windows上,您可以使用SetConsoleCursorPosition()在控制台中设置位置,在该位置将写入print / cout的输出。您需要将控制台句柄和COORD结构传递给该函数。您可以使用GetStdHandle()来获取句柄。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686025%28v=vs.85%29.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms683231%28v=vs.85%29.aspx

这是一个简单的例子:

HANDLE hndl=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos={0,0};
SetConsoleCursorPosition(hndl, pos);

但是你为什么要在一个单独的线程中运行你的计时器?不应该有任何需要这样做。只需测量从游戏开始经过的时间(参见此处的示例:How to use clock() in C++),然后从总时间限制中减去已用时间。