Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#控制台在按下键之前执行操作_C#_Console Application - Fatal编程技术网

c#控制台在按下键之前执行操作

c#控制台在按下键之前执行操作,c#,console-application,C#,Console Application,最近,我尝试在控制台应用程序中制作一些基本的游戏,比如用箭头移动光标(可能是snake和游戏的一个非常基本的开始,你可以在控制台屏幕上移动一些东西),我想问一下,是否有可能使光标不会停止移动,只要在按下箭头时改变方向?这与事件有关吗 谢谢。我建议如下: bool isRight, isUp; //Used to determine direction while (gamePlaying) { if(Console.KeyAvailable) { Console

最近,我尝试在控制台应用程序中制作一些基本的游戏,比如用箭头移动光标(可能是snake和游戏的一个非常基本的开始,你可以在控制台屏幕上移动一些东西),我想问一下,是否有可能使光标不会停止移动,只要在按下箭头时改变方向?这与事件有关吗


谢谢。

我建议如下:

bool isRight, isUp; //Used to determine direction
while (gamePlaying)
{
     if(Console.KeyAvailable)
     {
       Console.ReadKey(); //Do your thing in here
     }
}
所以你要检查一个键是否被按下,如果是你读的


另外,请记住,如果您正在制作一个控制台游戏,您将希望加倍缓冲屏幕,并使用Win32 API尽可能减少写调用,或者您的屏幕闪烁得很厉害。

我认为无论如何都无法控制控制台窗口的光标位置。你可以读或写文本,但仅此而已。因此,如果你想制作一个控制台游戏,它需要基于文本。你可能可以制作一个基于ASCII码的游戏,新文本以足够快的速度打印到控制台,使其看起来像是动画,但我认为控制台的速度不够快,无法很好地工作。

只需使用
while(true)
循环,然后在每次循环开始时检查是否按下了某个键。如果不使用Console.ReadKey,如何执行此操作?如果我使用它,程序将等待输入keyUse
if(Console.KeyAvailable){Console.ReadKey();}