Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#3

Re: Aufwandsanalyse für Kollisionserkennung

  Alt 11. Jul 2007, 13:15
Ich habe jetzt zugegeben nicht versucht, deinen Algorithmus bis ins letzte Detail zu verstehen. Aber folgendes als Denkanregung:
Du kannst die Anzahl der benötigten Vergleiche reduzieren, indem du eine Achsensortierung vornimmst. Für die Kollisionsprüfung gehst du all deine Objekte also nicht in einer beliebigen Reihenfolge durch, sondern von links nach rechts und von oben nach unten (oder so in der Art). Ehrlich gesagt krieg ich den Algorithmus aus dem Kopf derzeit nicht auf die Reihe und finde ihn auch nicht (er war glaub ich in einem Buch zu finden, aber ich ziehe demnächst um und die Bücher sind in irgendwelchen Kartons ), aber sinngemäß kann man dadurch schnell ableiten, für welche Objekte eine Kollisionsprüfung überhaupt nicht erforderlich ist. Also wenn zum Beispiel auf der X-Achse Objekt 1 und 2 sich nicht überschneiden, kann sich Objekt 3 auch unmöglich mit Objekt 1 überschneiden.

Edit: Dir ging es eventuell weniger um die Kollisionen an sich als mehr um die Konsequenzen von Kollisionen auf spätere Kollisionen, richtig? Eventuell ist es dann möglich, innerhalb eines Frames die Kollisionen zeitlich nacheinander zu betrachten. Ein Frame-Skipping-Algorithmus kann dir helfen, die Granularität der Prüfung genau genug zu machen, damit du innerhalb eines Frames keine zwei aufeinanderfolgenden Kollisionen hast (schnelle Schüsse stellen da ein Problem da, wie von dir bereits erkannt). Ich sitze natürlich gerade auf der Arbeit und habe nicht genug Zeit, mir abschließend dazu genug Gedanken zu machen, aber ich denk bei Gelegenheit nochmal drüber nach

Dein Spiel wird bestimmt cool
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat