Ich mache eine Kachel-Engine für Top-Down-2D-Spiele. Grundsätzlich besteht die Welt aus einem Gitter von Kacheln.
Jetzt möchte ich zum Beispiel NPCs setzen, die sich auf der Karte bewegen können.
Was denkst du ist am besten:
- Jede Kachel hat einen Zeiger auf den NPC, der sich auf ihrer Kachel befindet, oder einen NULL-Zeiger
- eine Liste von NPCs haben und sie haben die Koordinaten der Kachel, auf der sie sich befinden.
- etwas anderes?
Meiner Ansicht nach
- ist schneller für die Kollisionserkennung, würde aber viel mehr Speicherplatz verbrauchen und es ist langsamer, alle NPCs in einer Karte zu finden.
- ist das Gegenteil.
tiles
data-structure
Lezebulon
quelle
quelle
Wie gehen Sie mit Kollisionen mit der Karte um? Wenn Sie eine Kollisionsebene haben, besteht eine sehr einfache Möglichkeit darin, zuerst eine Liste von NPCs mit Koordinaten zu erstellen, die angeben, auf welcher Kachel sie sich befinden, diese Liste dann zu durchlaufen und die Kachel der Kollisionsebene unter dem NPC als Kollisionskachel zu markieren. Auf diese Weise würden die Kollisionen gegen NPCs gleichzeitig mit dem Rest der Karte behandelt. Das heißt natürlich, wenn sich die NPCs nicht bewegen ...
quelle