C# 使两个字符同时移动
我正在尝试在控制台应用程序中制作一个小游戏,我希望在移动玩家的同时,敌人能够以一定的速度移动。现在代码如下所示:C# 使两个字符同时移动,c#,console-application,C#,Console Application,我正在尝试在控制台应用程序中制作一个小游戏,我希望在移动玩家的同时,敌人能够以一定的速度移动。现在代码如下所示: public static int y = 5; public static string player = "O"; public static int enemyX = 10; static void Main(string[] args) { while (true) { Console.
public static int y = 5;
public static string player = "O";
public static int enemyX = 10;
static void Main(string[] args)
{
while (true)
{
Console.SetCursorPosition(enemyX, 10);
Console.Write("X");
enemyX = enemyX - 1;
Console.CursorVisible = false;
Console.SetCursorPosition(5, y);
Console.Write(player);
var move = Console.ReadKey(true);
switch (move.Key)
{
case ConsoleKey.W:
y = y - 1;
break;
case ConsoleKey.S:
y = y + 1;
break;
}
if (y <= 0)
{
y = 1;
}
if (y >= 25)
{
y = 24;
}
Console.Clear();
}
}
公共静态int y=5;
公共静态字符串播放器=“O”;
公共静态int enemyX=10;
静态void Main(字符串[]参数)
{
while(true)
{
控制台。设置光标位置(enemyX,10);
控制台。写入(“X”);
enemyX=enemyX-1;
Console.CursorVisible=false;
控制台。设置光标位置(5,y);
控制台。写入(播放器);
var move=Console.ReadKey(true);
开关(移动键)
{
案例ConsoleKey.W:
y=y-1;
打破
case ConsoleKey.S:
y=y+1;
打破
}
如果(y=25)
{
y=24;
}
Console.Clear();
}
}
据我所知,无论玩家是否移动,你都希望敌人移动,并且你可以使用
例如:
bool BreakThread = false; //you need this to break the thread loop
Thread enemyThread = new Thread(()=>
{
while(!BreakThread)
{
//do Enemy Actions
}
});
enemyThread.Start();
//then execute your main game loop
但请记住,当您需要时,请将BreakThread值设置为true
正在关闭游戏。
控制台。设置光标位置(enemyX,y)代码>?您需要准确描述问题是什么-您对代码的期望以及您得到了什么。抱歉,不清楚。我非常希望敌人向玩家移动,我不希望敌人自由移动。现在,当我按下W或S时,敌人和玩家同时移动。但我希望敌人自己移动。