/ / Управління трафіком в 2D містобудівнику - 2d, симуляція, трафік, ізометричний

Обробка трафіку в 2D містобудівнику - 2d, симуляція, трафік, ізометричний

Я створюю 2D ізометричне міське будівництвомоделювання і сьогодні я маю свого роду "кращу практику" питання, не питаючи конкретного коду. Як і в усіх іграх у місті, ви можете розміщувати будівлю, дороги тощо. Гравець здатний розміщувати будівлю скрізь, незалежно від того, чи це пов'язано з дорогою чи ні. На додаток до цього, є одна будівля (називаю це центр будівлі), всі будинки повинні бути пов'язані з (по дорозі). Мені потрібно це обійтися, не роблячи надто багато обчислень, які порушують FPS.

Зараз у мене є таймер для кожної будівліяка перевіряє, чи є одна з оточених плиток будівлі дорогою. Це добре працює, також для багатьох будівель, оскільки перевірка проста. Але тепер я хотів би перевірити підключення до будівлі центру. Щоб переконатися, що необхідно (на мій погляд) використати щось на зразок джерела, який перевіряє, чи є одна з оточених черепиці дорожним зв'язком з однією з оточених плиток центральної будівлі. Я не можу перевіряти це часто, оскільки це повністю розбиває FPS до 30 або нижче. Моя ідея полягала в тому, щоб запустити подію, якщо дорога була збудована або зруйнована, щоб "перемальовувати" дорожній зв'язок. Але трапляється ще одна проблема ... гравець може погубити дорогу посередині карти, і будівлі дуже далекі один від одного, тому мені потрібно знайти пов'язані будівлі, які також можуть зайняти надто багато часу.

Моя остання ідея створює щось на кшталт черги таймерів і поступово працює над цими елементами, але перш ніж продовжувати використовувати метод пробних та помилкових помилок, я хочу попросити вас про ідеї.

Дійсно з нетерпінням чекаємо ваших ідей! Йеки

Відповіді:

0 для відповіді № 1

У вас може бути список кожної будівліплитка (шлях), яка з'єднує її з будівлею центру. Тоді, коли плитка випадково знищується гравцем, ви можете перевірити кожну будівлю, щоб побачити, чи вона пройшла через цю дорожню плитку чи ні.

Як альтернатива, у вас може бути кожен магазин для дорожніх плитокякі будинки вимагають його, тому, коли плитка знищена, у вас є будинки негайно кидають прапори. Хоча це може стати досить незграбним, але пристойно підходить для фонової дзвінки з очищення швидкості.

Обидва методи є досить брудними. Можливо, ви можете зробити це правилом, згідно з яким гравець може розміщувати дороги крім інших дорог або поруч із будівлею центру. Тоді, коли гравець видаляє дорожну плитку, заповніть стиль фарби, що руйнує всі відключені дороги. Ви також можете періодично проводити довільну перевірку плитки, щоб дізнатись, чи вони були незаконно розміщені чи ні, але це не повинно бути зайвим, якщо ви будете "обережні".