Есть 2 потока , которые рисуют 2 машинки на консоли и имитируют их движение. Машинка -Враг- спускается сверху , а игрок должен ее обойти. Отрисовка объектов сделана через lock. Проблема в том , что когда мне надо "замедлить" машинку игрока, то его перемещение влево вправо так же замедлятся (по задумке не должно). Скорость реализована в виде регулировки времени Thread.Sleep(int delta). Подскажите, пожалуйста , возможные варианты решения этой проблемы.
Мне не кажется хорошей сама идея запускать логику разных объектов в разных потоках, и надеяться на планировщик для ускорения и замедления. В конце-концов, передача управления другому потоку ничем не гарантирована. (Ну и это решение очевидно не скалируется на случай, когда объектов становится много, но это уже техническая подробность.)
Я бы сделал по-другому: ввёл бы класс-координатор, который бы в цикле по очереди просил объекты сделать свой «ход», и заботился о нужной задержке (например, опрашивая скорость объектов). При таком дизайне всё бежит в одном потоке, и координатор играет роль планировщика.
Продвижение своими сайтами как стратегия роста и независимости