我正在尝试使用c ++控制台应用程序创建游戏
我的目标是让我的do .. while()
在等待响应的同时运行。
它应该一直显示“ ..O ..”,直到按下“ a”键,然后改为显示“ .O ...”,或者当按下“ d”键时显示“ ... O。”。
我的问题是我不能在不暂停应用程序等待输入的情况下使用cin
或getline
。
是否有一种方法可以执行类似循环的操作,如果cin
在10毫秒内未返回值,则会显示“ ..O ..”?
我不想让程序继续等待输入,也许就像每个Sleep(10)
之间的cin
...
我对外观的看法:
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;
}
答案 0 :(得分:0)
在您的问题中,如果未提供任何输入,则应用必须处于初始位置,因此需要重新排序
void out()
{
int x;
string key;
do {
system("cls");
cout << "..O..";
cin >> key; //output will remain same as long as no input
system("cls");
if (key == "a") {
cout << ".O..." << endl;
}
else if (key == "d") {
cout << "...O." << endl;
}
} while (x == 0);
x = 0;
}