【发布时间】:2019-05-08 06:53:36
【问题描述】:
我正在尝试使用 c++ 控制台应用程序创建游戏
我的目标是让我的do .. while() 在等待回复时运行。
它应该一直显示“..O..”,直到按下“a”键,然后显示“.O...”,或者当按下“d”键时显示“...O”。
我的问题是我不能在不暂停应用程序等待输入的情况下使用cin 或getline。
那么有没有办法做类似循环的事情,如果 cin 在 10 毫秒内没有返回一个值,它会打印“..O..”?
我不希望程序一直等待输入,可能就像每个 cin 之间的 Sleep(10) ...
我对它的外观的想法:
void out()
{
int x;
string key;
do {
cin >> key;
//insert here something like break; that will
//stop waiting for input after 10 milliseconds.
system("cls");
if (key != "a" && key != "d") {
cout << "..O..";
}
else {
if (key == "a") {
cout << ".O..." << endl;
}
else {
if (key == "d") {
cout << "...O." << endl;
}
else {
cout << "..O..";
}
}
}
} while (x == 0);
x = 0;
}
【问题讨论】:
-
您很可能需要将您的输入放在另一个线程上。我建议阅读this post 看看是否有帮助。
-
@Root0x 我阅读了链接,但我不知道如何开始多线程甚至线程。也许给我发一个链接,说明它们是什么以及它们是如何工作的?谢谢。
标签: c++ game-engine iostream cin