所以,我一直在研究在控制台应用程序中制作的游戏,我想要做的是 - 当我按下一个按钮(例如:Escape)时,会执行一些代码并执行它所要做的事情。
我在互联网上搜索过,我发现的唯一一件就是这个,这是行不通的,我不知道为什么:
void WindowCloseOnEsc_KeyDown(object sender, KeyEventArgs e) // does not know what
{ // is this "KeyEventargs"
if (e.KeyCode == Keys.Escape)
{
Environment.Exit(0);
}
}
答案 0 :(得分:0)
在控制台应用程序中,您应该使用Console.Read*()
沿袭的输入法。
上面的代码可以绑定到一个Windows窗体应用程序,它有一个消息泵,通常工作方式不同(面向事件,而不是面向行)。
这回答了一个非常相似的问题:https://stackoverflow.com/a/5891612/3227403
答案 1 :(得分:0)
你可以利用
Console.ReadKey Method收听应用程序用户按下的键。
class Example
{
public static void Main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
Console.TreatControlCAsInput = true;
Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
Console.WriteLine("Press the Escape (Esc) key to quit: \n");
do
{
cki = Console.ReadKey();
Console.Write(" --- You pressed ");
if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
Console.WriteLine(cki.Key.ToString());
} while (cki.Key != ConsoleKey.Escape);
}
}