Я создаю 2D изометрическое моделирование городского строительства, и сегодня у меня есть вопрос «наилучшей практики», не запрашивая конкретный код. Как и во всех играх по строительству города, вы можете разместить здание, дороги и так далее. Игрок может разместить здание повсюду, независимо от того, подключен ли он к дороге или нет. В дополнение к этому есть одно здание (назовите его центральным зданием), все здания должны быть соединены (по дороге). Мне нужно справиться с этим, не выполняя слишком много вычислений, которые разбивают FPS.Обработка трафика в 2D строителе города
Сейчас у меня есть работа по таймеру для каждого здания, которая проверяет, является ли одна из окруженных плиток здания дорогой. Это отлично работает, также для многих зданий, так как проверка проста. Но теперь я хотел бы проверить подключение к зданию центра. Чтобы проверить, что необходимо (по-моему) использовать что-то вроде следопыта, которое проверяет, имеет ли одна из окруженных плиток дорожное соединение с одной из окруженных плиток центрального здания. Я не могу проверить это часто, потому что это полностью разрушает FPS до 30 или ниже. Моя идея состояла в том, чтобы запустить мероприятие, если дорога была построена или уничтожена, чтобы «перераспределить» дорожное соединение. Но возникает еще одна проблема ... игрок может разрушить дорогу в середине карты, а здания действительно находятся далеко друг от друга, поэтому мне нужно найти задействованные здания, которые также могут занять слишком много времени.
Моя последняя идея заключается в создании чего-то вроде очереди таймеров и работы через эти элементы постепенно, но прежде чем я продолжу использовать метод проб и ошибок, я хотел бы попросить вас идеи.
Действительно с нетерпением жду ваших идей! Yheeky