Robię silnik kafelkowy dla odgórnych gier 2D. Zasadniczo świat składa się z siatki płytek.
Teraz chcę umieścić na przykład NPC, którzy mogą poruszać się po mapie.
Co uważasz za najlepsze:
- każdy kafelek ma wskaźnik do NPC znajdującego się na jego kafelku lub wskaźnik NULL
- z listą NPC i mają współrzędne kafelka, na którym się znajdują.
- coś innego?
Myślę
- jest szybszy w wykrywaniu kolizji, ale zużyłby dużo więcej pamięci i wolniej znajdowałby wszystkich NPC na mapie.
- jest odwrotnie.
tiles
data-structure
lezebulon
źródło
źródło
Jak radzisz sobie z kolizjami z mapą? Jeśli masz warstwę kolizyjną, bardzo łatwym sposobem byłoby najpierw utworzenie listy NPC ze współrzędnymi wskazującymi, na której płytce się znajdują, a następnie iterowanie tej listy i oznaczenie płytki warstwy kolizyjnej pod NPC jako płytkę kolizyjną. W ten sposób kolizje z NPC będą obsługiwane w tym samym czasie, co reszta mapy. Oczywiście jeśli NPC się nie ruszą ...
źródło