/ / Handle traffic in 2D city builder - 2d, symulacja, ruch, izometryczny

Obsługuj ruch w 2D budowniczym miast - 2d, symulacja, ruch, izometryczny

Tworzę dwuwymiarowy izometryczny budynek miejskiSymulacja i dzisiaj mam rodzaj "najlepszej praktyki" pytanie bez pytania o konkretny kod. Tak jak we wszystkich grach budowania miast, możesz budować budynki, drogi i tym podobne. Gracz może umieścić budynek wszędzie, bez względu na to, czy jest podłączony do drogi, czy nie. Oprócz tego jest jeden budynek (nazywany budynkiem centralnym), z którym wszystkie budynki muszą być połączone (drogą). Muszę sobie z tym poradzić bez robienia zbyt wielu obliczeń, które łamią FPS.

Teraz mam zadanie timera dla każdego budynkuktóry sprawdza, czy jedna z otaczających płytek budynku jest drogą. To działa dobrze, również dla wielu budynków, ponieważ kontrola jest prosta. Ale teraz chciałbym sprawdzić połączenie z budynkiem centralnym. Aby sprawdzić, czy jest konieczne (moim zdaniem) użycie czegoś w stylu pathfindera, który sprawdza, czy jedna z otaczających płytek ma połączenie drogowe z jedną z otaczających płytek budynku centralnego. Nie mogę tego często sprawdzać, ponieważ całkowicie rozbija FPS do 30 lub mniej. Mój pomysł polegał na wystrzeleniu jakiegoś wydarzenia, jeśli droga została zbudowana lub zniszczona, aby "przekalkulować" połączenie drogowe. Ale pojawia się kolejny problem ... gracz może zniszczyć drogę na środku mapy, a budynki są naprawdę daleko od siebie, więc muszę znaleźć zaangażowane budynki, które również mogą zająć zbyt dużo czasu.

Moim ostatnim pomysłem jest stworzenie czegoś w rodzaju kolejki czasomierza i praca z tymi elementami stopniowo, ale zanim użyję metody prób i błędów, chciałbym zapytać o pomysły.

Naprawdę nie mogę się doczekać twoich pomysłów! Yheeky

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz mieć każdy magazyn budynku listępłytki (ścieżka), która łączy go z budynkiem centralnym. Następnie, gdy kafelek zostanie losowo zniszczony przez gracza, możesz przetestować każdy budynek, aby sprawdzić, czy jest on pokryty tą płytką drogi, czy nie.

Ewentualnie możesz mieć każdy magazyn kafli drogowychktóre budynki go wymagają, więc gdy dachówka zostanie zniszczona, budynki natychmiast rzucają flagi. To może stać się dość niechlujne, ale przyzwoicie nadaje się do połączeń czyszczących w tle.

Obie metody są dość niechlujne. Być może możesz zasadę, że gracz nie może umieszczać dróg poza innymi drogami lub obok budynku centralnego, a kiedy gracz usunie kafelek drogi, wypełnij farbą wypełnienie, które niszczy wszystkie odłączone drogi. Możesz także okresowo wykonywać losową kontrolę płytek, aby sprawdzić, czy są one umieszczone nielegalnie, ale nie powinno to być konieczne, jeśli "będziesz ostrożny".