Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - indie_rok

#1
Ya quedo!

Al que le sirva, le dejo el codigo

do
            {
               
                Console.SetCursorPosition(x, y);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("@");
                keyinfo = Console.ReadKey();

                while(keyinfo.Key == ConsoleKey.UpArrow)
                {
                   
                        y = y - 1;
                        Console.SetCursorPosition(x, y);
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("@");
                        Console.SetCursorPosition(x, y + 1);
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine("@");
                        break;
                   
                }

                while (keyinfo.Key == ConsoleKey.DownArrow)
                {
                   
                    y = y + 1;
                    Console.SetCursorPosition(x, y);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("@");
                    Console.SetCursorPosition(x, y - 1);
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.WriteLine("@");
                    break;
                }

                while(keyinfo.Key == ConsoleKey.LeftArrow)
                {
                    x = x - 1;
                    Console.SetCursorPosition(x, y);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("@");
                    Console.SetCursorPosition(x+1 , y);
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.WriteLine("@");
                    break;
                   
                }

                while (keyinfo.Key == ConsoleKey.RightArrow)
                {
                    x = x + 1;
                    Console.SetCursorPosition(x, y);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("@");
                    Console.SetCursorPosition(x-1,y);
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.WriteLine("@");
                    break;
                   
                }

            }

            while (keyinfo.Key != ConsoleKey.Enter);
#2
Claro, ya tengo una parte..

El problema es que ahora si ya hace el cambio, pero solo lo hace una vez.

no conozco la sintaxis para hacer que y deje de valer 11 y ahora valga 10 y asi cada vez que presiono la flecha de arriba.
ConsoleKeyInfo keyinfo;
            int x = 11;
            int y = 11;

            do
            {
               
                Console.SetCursorPosition(x, y);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("@");

                keyinfo = Console.ReadKey();
                while(keyinfo.Key == ConsoleKey.UpArrow)
                {
                    Console.SetCursorPosition(x, y-1);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("@");
                    break;
                }

                while (keyinfo.Key == ConsoleKey.DownArrow)
                {
                   
                }

                while(keyinfo.Key == ConsoleKey.LeftArrow)
                {
                   
                }

                while (keyinfo.Key == ConsoleKey.RightArrow)
                {
                   
                }

            }

            while (keyinfo.Key != ConsoleKey.Enter);


Ideas?

Saludos
#3
Hola amigos! Buen dia

Resulta que tengo que hacer una aplicación de consola que mueva un objeto sencillo en X,Y con las flechas del teclado. Esto es lo que llevo (ya reconoce cuando el usuario aprieta la tecla a mover.


ConsoleKeyInfo keyinfo;
            do
            {
                Console.SetCursorPosition(11, 11);
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("@");

                keyinfo = Console.ReadKey();
                if(keyinfo.Key == ConsoleKey.UpArrow)
                {
                    Console.SetCursorPosition(11, 10);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("@");

                }

                while (keyinfo.Key == ConsoleKey.DownArrow)
                {
                   
                }

                while(keyinfo.Key == ConsoleKey.LeftArrow)
                {
                   
                }

                while (keyinfo.Key == ConsoleKey.RightArrow)
                {
                   
                }

            }

            while (keyinfo.Key != ConsoleKey.Enter);


El problema es que no se como hacer para que me actualicé la posición inicial. (no conozco la sintaxis) Alguien me da una mano?

Buen dia