【发布时间】:2018-12-01 21:25:05
【问题描述】:
我是 C# 的新手,在我开始接触技术含量更高的东西之前,我已经开始在控制台中创建一个基于文本的小游戏。在我的开始菜单上,我希望制作一个简单的炫酷'Press Enter to continue',它会循环打开和关闭,直到用户按下 Enter 键。
while (!enter)
{
WhiteText();
Console.SetCursorPosition(47, 15);
Console.WriteLine("[Press 'Enter' to start game]");
System.Threading.Thread.Sleep(2000);
BlackText();
Console.SetCursorPosition(47, 15);
Console.WriteLine("[Press 'Enter' to start game]");
System.Threading.Thread.Sleep(1000);
}
本质上,我希望在检查用户是否实际按下回车时重复该操作。我使用了带有ConsoleKeyInfo input = Console.ReadKey(); 的if 语句,然后检查他们是否按下了回车键。我的问题是我似乎无法让两者一起运行。这在控制台中甚至是可能的吗?
我真的希望我能以我有限的知识把这一点说清楚,对此的任何帮助或见解将不胜感激。
【问题讨论】:
-
“我对 C# 很陌生”——那么不要浪费你的时间让控制台做它真正不适合做的事情。这并不像看起来那样“初学者”。
-
找到一些可以用 ReadLine 和 WriteLine 做的项目。
-
好吧,
ReadKey()将阻塞 - 即在返回之前不会继续执行下一行,直到按下一个键才会执行。相反,您可以在循环中检查Console.KeyAvailable以查看是否已按下某个键,然后对其进行操作。
标签: c# while-loop timer sleep