Meine Herren,
Laut Wikipedia soll es dazu eine einfache Methode: "Eine weitere Verbesserung für Computerspiele war die Sprite-Sprite-Kollisionserkennung. Sobald der Grafikprozessor beim Erstellen des Bildes erkennt, dass sich zwei Sprites überlappen, wird dies der Software per Interrupt, Flag oder Event mitgeteilt. [...]"
Der Auszug ist leider relativ allgemein, ich vermute dass eine PerPixel-Kollisionserkennung gemeint ist. Dabei zeichnet man die betroffenen Sprites mit geeigneten Blend-Modi in einen Buffer und prüft, ob dieser Buffer nicht-transparente Pixel enthält. Sollte das der Fall liegt eine Kollision vor.
Damit sind die meisten Computerspiele vergleichsweise einfach zu programmieren, weil sich das Programm nicht um die Kollisionserkennung kümmern muss und für diese keine Rechenleistung verbraucht."
Auch hier muss ich raten, was der Author des Artikels gemeint hat. Möglicherweise meinte er, dass bei einer PerPixel-Berechnung nicht zusätzlich eine physische Repräsentation des Modells erschaffen werden muss.
Nachteil von PerPixe-Algorithmen ist, dass lediglich eine Kollision erkannt werden kann oder eben nicht. In den meisten Fällen reicht das nicht aus. Beispielsweise ist es häufig interessant zu wissen, wie weit sich die Objekte überschneiden, an welcher Stelle und aus welcher Richtung die Objekte kamen.
Gibt es dafür vielleicht einen eventListener?
Nicht im Standard-Sprachumfang von Javascript oder DOM. Worauf basiert dein Spiel denn? D.h. welche Frameworks benutzt du, wenn du welche benutzt. Was ist dein Ausgabemedium (Canvas, WebGL, SVG, HTML?).
--
Hey Girl,
i wish you were asynchronous, so you'd give me a callback.