控制台跳转并在C#中运行

时间:2019-05-16 07:16:25

标签: c# console-application

我想用C#在控制台内编写简单的Jump and Run代码。就像supermario一样,没有怪物。当我要更新“播放器”时,它并不总是工作或闪烁。

        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 个答案:

答案 0 :(得分:1)

您的字符“ A”没有移动,因为cursorX + 1cursorX - 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);
    }
}