首先,我想道歉,因为这可能是在我之前提出来的。然而,无论我在哪里,我都找不到答案。 我想做一个特定的角色移动(不断地,或通过某个键)。 通过移动我的意思是它改变它在屏幕上的位置。我不认为我真的了解它,但我认为你可以只使用for循环并在每个字符之前添加一个空格。如果可能的话,我想知道如何制作这个for循环。 例如: 运行程序时,您会看到: * 然后按下一个键或不断按下(如前所述): * 如你所见,角色向右移动。但我想知道如何让它向各个方向移动(向上,向下等)
答案 0 :(得分:1)
希望这足够好。运行代码,然后按箭头键移动星号。从这里获得灵感:https://msdn.microsoft.com/en-us/library/system.console.setcursorposition(v=vs.110).aspx
public class Program
{
public static void Main(string[] args)
{
const char toWrite = '*'; // Character to write on-screen.
int x = 0, y = 0; // Contains current cursor position.
Write(toWrite); // Write the character on the default location (0,0).
while (true)
{
if (Console.KeyAvailable)
{
var command = Console.ReadKey().Key;
switch (command)
{
case ConsoleKey.DownArrow:
y++;
break;
case ConsoleKey.UpArrow:
if (y > 0)
{
y--;
}
break;
case ConsoleKey.LeftArrow:
if (x > 0)
{
x--;
}
break;
case ConsoleKey.RightArrow:
x++;
break;
}
Write(toWrite, x, y);
}
else
{
Thread.Sleep(100);
}
}
}
public static void Write(char toWrite, int x = 0, int y = 0)
{
try
{
if (x >= 0 && y >= 0) // 0-based
{
Console.Clear();
Console.SetCursorPosition(x, y);
Console.Write(toWrite);
}
}
catch (Exception)
{
}
}
}