Консоль Jump and Run в C # - PullRequest
       19

Консоль Jump and Run в C #

1 голос
/ 16 мая 2019

Я хочу закодировать легкий Jump and Run внутри консоли с C #.Что-то вроде супермарио просто без монстров.Когда я хочу обновить «плеер», он не всегда работает или мигает.

        static int cursorX = 5;
        static int cursorY = 10;

        static void Main(string[] args)
        {
            Console.SetCursorPosition(cursorX, cursorY);
            Console.Write("A");

            while(true)
            {
                MovePlayer();
            }

            Console.ReadKey(true);
        }

        private static void MovePlayer()
        {
            if (Console.ReadKey().Key == ConsoleKey.RightArrow)
            {
                updateCursor(cursorX + 1, cursorY);
            }
            else if(Console.ReadKey().Key == ConsoleKey.LeftArrow)
            {
                updateCursor(cursorX - 1, cursorY);
            }
        }

        private static void updateCursor(int x, int y)
        {
            Console.Clear();
            Console.SetCursorPosition(x, y);
            Console.Write("A");
        }
}

1 Ответ

1 голос
/ 16 мая 2019

Ваш символ "A" не двигается, потому что cursorX + 1 и cursorX - 1 не будут присваивать ему новое значение (положение курсора). Он просто добавляет +1 и вычитает -1 из его текущего значения. Вам необходимо присвоить новое значение cursorX. Вам нужно использовать Increment operator (++) и Decrement operator (--).

private static void MovePlayer()
{
    if (Console.ReadKey().Key == ConsoleKey.RightArrow)
    {
        updateCursor(cursorX++, cursorY);
    }
    else if (Console.ReadKey().Key == ConsoleKey.LeftArrow)
    {
        updateCursor(cursorX--, cursorY);
    }
}
...