Implementierung von Kollisionssystemen


7

Nur neugierig, was ein guter Weg sein könnte, um ein anständiges Kollisionssystem zu implementieren. Als Klasse, die von einer Basisentitätsklasse geerbt wurde? Momentan stecke ich fest und könnte nur ein paar bessere Ideen gebrauchen als meine eigenen.

Jede Hilfe wird geschätzt!

Bearbeiten: Sorry, es ist 2D-Kollision, aber ehrlich gesagt suche ich nicht nach bestimmten Kollisionsmethoden. Ich schaue mehr über die Implementierungslinien. Ich bin nur neugierig auf einige der gängigen Methoden zur Implementierung von Kollisionssystemen wie:

Sollte das gesamte Kollisionssystem eine eigene Klasse sein? Was sollte, wenn überhaupt, vererbbar sein?

Dies sind einige meiner Fragen. Entschuldigung für die Verwirrung.


Bitte fügen Sie einige zusätzliche Informationen darüber hinzu, was Sie erreichen möchten. Benötigen Sie eine 2D- oder 3D-Kollisionserkennung? Wie viele Objekte müssen überprüft werden? Welche Präzision brauchen Sie?
sum1stolemyname

Antworten:


5

Jedes Mal, wenn ich nach Kollisionssystemen frage, gehen Diskussionen (online) so:

  • "Hey, wie soll ich diese Art von Kollision machen?"
  • "Sie sollten diesen Algorithmus ausprobieren."
  • "Nein, dieser eine Algorithmus wäre besser!"
  • "Vielleicht würde eine globalere Sicht auf das System helfen, wie die Verwendung dieses Algorithmus."
  • "Holen Sie sich einfach das Buch" Echtzeitkollisionen "und halten Sie den Mund."

Nach mehreren Diskussionen wie diesen habe ich mir endlich das Buch gekauft: http://realtimecollisiondetection.net/

Es enthält alle Aspekte des Themas, um Sie ausreichend zu informieren, damit Sie entscheiden können, was für jeden Fall zu tun ist.


Danke, dass du mich aufgeklärt hast. Ehrlich gesagt habe ich viele Ressourcen zu verschiedenen Algorithmen gefunden. Nur eine Idee blockieren, wie genau auf eine semi-effiziente / realistische Weise implementiert werden kann. Noch einmal Danke.
hrr4

Kein Problem, ich habe immer wieder dieselben Fragen durchlaufen und jetzt, da ich dieses Buch habe, habe ich eine solide Referenz, an der ich sofort arbeiten kann.
Klaim

3

Dies ist eine Frage des Entwurfsansatzes, daher gibt es keine einzige optimale Lösung.

Ein möglicher Ansatz wäre die Erstellung einer Oberklasse für kollidierbare Objekte, die Funktionen für die Kollisionserkennung definiert und alle kollidierbaren Objektklassen von dieser Klasse erben lässt.

Wie diese Funktionen funktionieren, hängt von anderen Parametern ab, z. B. von der Art der Kollisionserkennung (Begrenzungsrahmen, Begrenzungskreis, Begrenzungspolygon, pro Pixel, ...).


Hrm, danke für die Eingabe. Ja, von dem, was ich gefunden habe und für das, was ich erreichen möchte (Asteroiden-Klon), habe ich mich für ein Kreis-Kreis-> AABB-System entschieden. Aber auch hier suchte ich nur nach Implementierungsideen. Ideenblöcke treffen und nur ein bisschen Hilfe holen :). Vielen Dank!
hrr4
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.