texto - posicionamiento en consola c#
¿Cómo puedo obtener el carácter en el cursor en una aplicación de consola C#? (3)
Sé cómo colocar el cursor en un punto específico de la consola con SetCursorPosition o CursorLeft y CursorTop juntos. Eso no es un problema.
Pero , ¿cómo puedo obtener el valor de ese punto? ¿No hay algo como Console.Cursor ? ¿Así que puedo obtener el personaje en esa posición? Tal vez algo así como:
char c = Console.GetCharAtCursor();
¿Sin suerte?
¿De verdad quieres decir que quieres leer el flujo de entrada?
Console.ReadKey();
por ejemplo.
''CursorLeft'' y ''CursorTop'' tienen getters así que puedes leerlos: var cleft = Console.CursorLeft
AFAIK, debe leer todo el búfer de la consola como un búfer bidimensional, y usar las coordenadas X e Y del cursor como un índice en ese búfer. Ver:
[DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
public static extern bool GetConsoleScreenBufferInfo(
IntPtr consoleHandle,
out CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo);
Puede leer sobre la estructura de búfer aquí:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093(v=vs.85).aspx
Actualizar:
Si está interesado en usar las API de la consola para la escritura de juegos, alguien escribió invasores de espacio para la consola (en realidad, Powershell), pero todas las API son código administrado, no script. Tiene rutinas sprite / path, etc. - la fuente ha terminado en http://ps1.soapyfrog.com/2007/08/26/grrr-source-code-including-invaders/