Seite 1 von 1

Kollisionserkennung

Verfasst: Dienstag 7. September 2010, 11:11
von Barcellona
Hallo,

ich versuche gerade am Thema Kollisionserkennung zu arbeiten.
Sowohl in 2D-Spielen als auch in 3D-Spielen.

Hat jemand Vorschläge/Ideen, wie ich das möglichst in leicht verständlichem Code
implementieren könnte, der trotzdem halbwegs schnell ist?

Die Funktion soll 2 Objekte (Spieler, Gegner) als Parameter nehmen und zurückgeben, ob
es eine Kollision gibt (True oder False).
In den Objekten sind Attribute verfügbar, wie x und y-Koordinaten.
Im 2D-Spiel zB x-Koordinate-links, x-Koordinate-rechts, y-Koordinate-oben, y-Koordinate-unten vom Sprite.

Danke für alle Vorschläge (falls jemand gute Artikel im Netz dazu kennt, auch gerne Link posten)

Re: Kollisionserkennung

Verfasst: Dienstag 7. September 2010, 17:46
von EyDu
Hallo.

Das hängt natürlich ganz davon ab, wie genau die Erkennung werden soll. Das einfachste Modell sind Kreise mit Radien ri um die Objekte. Die Objekte 1 und 2 kollidieren dann, wenn die Mittelpunkte der Kreise näher zusammen sind als r1+r2. Meistens reicht dieser Ansatz schon aus.

Der Aufwand für Genauigkeit steigt natürlich spürbar über Bounding Boxen, orientierte Bounding Boxen, Ellipsen/Spähren und Dreiecken/Pixeln. Zu dem Thema wird dir die Suchmaschine deiner Wahl allerdings mehr als genug Treffer liefern.

Sebastian

Re: Kollisionserkennung

Verfasst: Donnerstag 16. September 2010, 08:15
von Hyperion
Ich habe bisher immer mit Tile-basierten Ansätzen gearbeitet. Aufgrund des zugrunde liegenden Rasters ist es dort fast trivial eine Kollision zu erkennen. Für viele Spiele reicht so was vollkommen aus - hängt aber nun stark von Deiner Idee ab.