Die Framebuffer Objects tanzen mir allerdings noch auf der Nase herum. Und ich muss dringend von Bruteforce auf einen Quadtree oder ähnliches für Kollisionserkennung und Interaktion umsteigen.
Google+: View post on Google+
Die Framebuffer Objects tanzen mir allerdings noch auf der Nase herum. Und ich muss dringend von Bruteforce auf einen Quadtree oder ähnliches für Kollisionserkennung und Interaktion umsteigen.
Google+: View post on Google+
Wie wärs mit kleinen virtuellen Kästchen ne Liste mit fünf-sechs Pointern und schreib objekte die ein und austreten rein/raus.
Wenn mehr als ein Objekt gelistet ist machst du eine Kollisionsabfrage für die Liste. Wenn du mehr Objekte als Elemente in der Liste hast schreibst du n Overflowwert in den ersten Pointer und machst n Fallback auf Bruteforce.
Soweit ich dein Problem jetzt richtig nachvollzogen hab sollte das doch helfen? 🙂
Mach aus den festen Pointern (mit n-Tree) ne Liste und du bist bei einer der gängigsten Lösungen.
Der oben erwähnte Quadtree, als 2. Möglichkeit, teilt das Spielfeld in vier Quadranten, die in der Baumstruktur immer wieder geviertelt werden, bis in jedem Blatt des Baumes nur noch eine festgelegte Zahl an Elementen existiert. Dann kann man sich bei zu geringer Nähe eines Elementes zum Rand eines Feldes die Baumstruktur in Richtung zur Wurzel zurückhangeln.
Verhältnismäßig viel Code der zu schreiben ist, bis man das Ergebnis sieht. 😉
ich steh nicht so auf standardlösungen … Quadtree klingt spannend, hab ich noch nicht mit gearbeitet – Methodik ist aber bekannt.
Das Problem was ich sehe ist, ich versteh die Lösung, nur die Logik nicht. Um sie zu verstehn müsste man wie in Mathe erst den Beweiß erbringen. Gut bei so etwas einfachem wie Quadtrees gehts noch, aber wenns zum Beispiel darum geht nachzuvollziehen warum der A*-Agorithmus besser arbeitet wenn sich die Heuristik dem Ergebnis annähert. Oder in die Tiefen von Fibonacci-Heaps einzusteigen ist einfach noch nicht meins …
Sag mal welche Programmiersprache ist das eigentlich?
C++ mit SDL/OpenGL
C++ ist jetzt nicht so meins aber wenn du mal Interesse an einer Teamarbeit hast … ich hätte Spaß dran.
würde auch meine C++ Kenntnisse entstauben 😉