Есть 2 потока , которые рисуют 2 машинки на консоли и имитируют их движение. Машинка -Враг- спускается сверху , а игрок должен ее обойти. Отрисовка объектов сделана через lock
. Проблема в том , что когда мне надо "замедлить" машинку игрока, то его перемещение влево вправо так же замедлятся (по задумке не должно). Скорость реализована в виде регулировки времени Thread.Sleep(int delta)
. Подскажите, пожалуйста , возможные варианты решения этой проблемы.
Мне не кажется хорошей сама идея запускать логику разных объектов в разных потоках, и надеяться на планировщик для ускорения и замедления. В конце-концов, передача управления другому потоку ничем не гарантирована. (Ну и это решение очевидно не скалируется на случай, когда объектов становится много, но это уже техническая подробность.)
Я бы сделал по-другому: ввёл бы класс-координатор, который бы в цикле по очереди просил объекты сделать свой «ход», и заботился о нужной задержке (например, опрашивая скорость объектов). При таком дизайне всё бежит в одном потоке, и координатор играет роль планировщика.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Требуется сделать так, чтобы в теме Drupal 7 подсвечивался активный пункт меню, для этого нужно задать класс active тегу <li> вместо <a>По определёным...
Есть базовый класс View, в котором лежит protected static свойство: