在这里使用 C#。我正在创建一个控制台应用程序。我有两种方法可以滚动文本,而不是立即在屏幕上显示它。一个与 Console.Write() 相同,另一个与 Console.WriteLine() 相同。不同之处在于每个字符之间有 30 毫秒的延迟。我正在努力做到这一点,以便当您按住一个键时,每个字符之间的延迟会加快 5 毫秒。问题是,一旦你按下一个键,Console.KeyAvailable 就为真并且不会重置,因此它只会延迟 5 毫秒。有没有办法将它设置回false,或者我可以做些什么来完成这个?这是我的代码:
//Console.Write() version
static void RPGWrite(string write)
{
char[] writearray = write.ToCharArray();
int writearraycount = writearray.Count();
for (int x = 0; x < writearraycount; x++)
{
Console.Write(Convert.ToString(writearray[x]));
if (Console.KeyAvailable == false)
System.Threading.Thread.Sleep(30);
else
System.Threading.Thread.Sleep(5);
}
}
//Console.WriteLine() version
static void RPGWriteLine(string write)
{
char[] writearray = write.ToCharArray();
int writearraycount = writearray.Count();
for (int x = 0; x < writearraycount; x++)
{
Console.Write(Convert.ToString(writearray[x]));
if (Console.KeyAvailable == false)
System.Threading.Thread.Sleep(30);
else
System.Threading.Thread.Sleep(5);
}
Console.Write("\n");
}