none
Responder automáticamente a tecla presionada en consola

    Question

  •  

    Hola compañeros, estoy usando C# en modo consola y estoy intentando hacer un juego muy primitivo, en estos momentos estoy buscando metodos para responder a las teclas que el usuario presiona.

    He buscando y encontrado una forma, funciona capturando el codigo ASCII de la tecla presionada:

    classProgram
    {
    staticvoid Main(string[] args)
    {
    int x = 0, y = 0;
    char a;
    int cod;
    a =
    Convert.ToChar(System.Console.ReadLine());
    cod = (
    int)a;
    Console.Write(cod);Console.ReadKey();
    System.
    Console.
    }
    }

    Con este codigo, logro capturar la tecla que el usuario presiona, lo malo es que se debe presionar ENTER.

    Mi pregunta es, hay alguna forma de hacer esto SIN tener que presionar ENTER?

    Yo por mi parte sigo investigando.

    Saludos
    Friday, October 19, 2007 2:57 PM

All replies

  • Hola,

     

    El problema es que estás utilizando ReadLine, que lo que hace es leerte todo lo que introduce el usuario hasta darle al intro, por lo que en el caso de que haga más de una pulsación te soltará una exception cuando hagas el Convert.ToChar.

     

    Lo que deberías hacer es cambiar Console.ReadLine por Console.ReadKey, el cual te devuelve una estructura ConsoleKeyInfo y de ahí coger el char directamente sin hacer el cast a través de la propiedad "KeyChar".

    Friday, October 19, 2007 4:50 PM