我知道如何将光标设置在控制台中的特定点与SetCursorPosition或左方向键和CursorTop在一起。这不是问题。如何在C#控制台应用程序中获取光标处的字符?
但是,我怎么能得到那个点的价值?是不是有像Console.Cursor?所以我可以在那个位置找到角色?可能是这样的:
char c = Console.GetCharAtCursor();
不幸运?
我知道如何将光标设置在控制台中的特定点与SetCursorPosition或左方向键和CursorTop在一起。这不是问题。如何在C#控制台应用程序中获取光标处的字符?
但是,我怎么能得到那个点的价值?是不是有像Console.Cursor?所以我可以在那个位置找到角色?可能是这样的:
char c = Console.GetCharAtCursor();
不幸运?
“左方向键”和“CursorTop”有干将,所以你可以只阅读:var cleft = Console.CursorLeft
据我所知,您已经阅读整个控制台缓冲区为一个二维缓冲区,并使用光标的X和Y坐标为该缓冲区的索引。请参阅:
[DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
public static extern bool GetConsoleScreenBufferInfo(
IntPtr consoleHandle,
out CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo);
您可以阅读有关缓冲结构在这里:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093(v=vs.85).aspx
更新:
如果您有兴趣使用控制台的API为游戏写,有人写控制台的空间入侵者(实际上是powershell),但所有的API都是托管代码,而不是脚本。他有sprite /路径例程等 - 源码已结束http://ps1.soapyfrog.com/2007/08/26/grrr-source-code-including-invaders/
实际上,您是否想要读取输入流?
Console.ReadKey();
例如。
谢谢Jodrell。我有我需要的。 – 2012-03-20 16:22:13
你能澄清一下你试图获得什么价值吗?你想获得你指向的字符串或数字的值或指针的坐标吗? – mservidio 2012-03-20 15:58:54
该帖子已被编辑。你能再读一遍吗?如果您有其他方法可以做到这一点,请分享。 – 2012-03-20 16:14:00