Как использовать таймер/ задержку для перемещения объекта или персонажа в окне консоли?
Я пытаюсь создать консольную игру, в которой символ "м", как в "Марсианине", и символ "С", как в "SpaceCreature", остаются противоположными на обоих концах оси X и перемещаются вверх и вниз по оси Y.
Я использую клавиши со стрелками, чтобы заставить "м" двигаться вверх и вниз. Но буква "С" тоже должна двигаться, но сама по себе, когда движется буква "М". Мне нужно заставить букву " С "двигаться в более медленном темпе, чтобы следовать за буквой "М".
Что я уже пробовал:
На данный момент я вижу, как " М "движется вверх и вниз с помощью клавиш со стрелками, а "с" также движется одновременно.
Мне нужно заставить букву " С " двигаться медленнее. Я попробовал нить.Сон, но это просто заставляет " S " исчезнуть и появиться снова, как Глюк. Я думаю, что мне нужно использовать что-то под названием "консоль.keyAvailable", но мне трудно понять, где разместить эту функцию.
//X and Y get set constructors are defined in the abstract class:-SpaceObject public override void Draw() //In both classes Martian and SpaceCreature { Console.SetCursorPosition(X, Y); Console.WriteLine("S"); //In Martian class:- Console.WriteLine("M"); } static void Main(string[] args) { var m = new Martian(100, 10); var s = new SpaceShip(100, 10); const int MaxY = 25; m.Draw(); //Abstract override void method s.X = m.X + 100; s.Y = m.Y; s.Draw(); //Abstract override void method ConsoleKeyInfo keyInfo; while (true) { keyInfo = Console.ReadKey(true); Console.Clear(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: if (m.Y > 0) { m.Y--; } break; case ConsoleKey.DownArrow: if (m.Y < MaxY) { m.Y++; } break; } m.Draw(); s.X = m.X + 100; s.Y = m.Y; s.Draw(); } } }