我想用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");
}
}
答案 0 :(得分:1)
您的字符“ 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);
}
}