Kollision verhindern

Degush

Aktives Mitglied
Hey,

ich stehe vor einem Problem, bei dem ich nicht weiterkomme.
Folgende Situation: Ich habe eine Spielwelt, in der periodisch neue Positionen für alle möglichen Objekte berechnet werden. Vor jeder neuen Positionsberechnung wird geprüft, ob die Objekte nach der nächsten Positionsänderung durch ihre Geschwindigkeit kollidieren würden. Wenn ja, möchte ich den Vektor berechnen, um den beide Körper in Geschwindigkeitsrichtung verschoben werden müssten, damit sie "gerade" nicht kollidieren.

Mein Ansatz dazu ist folgender:
Drawing #1001
Ich berechne die gemeinsame Fläche beider Körper. Dann schaue ich, wo in dieser Fläche in Geschwindigkeitsrichtung die größte Distanz ist und bewege den Körper in Richtung des Gegenvektors.
Ich möchte die größtmögliche Performance!
Deshalb wäre es eigentlich günstig, wenn ein Körper alle Punkte gespeichert hätte, die ganz außen liegen.
Wenn jedem Körper also quasi ein Skelett zugeordnet wäre.
Das Skelett kann man als Linie auffassen, die an den Rändern des Körpers entlangläuft, und müsste die Schnittpunkte der Skelette kennen.

Hat jemand einen Vorschlag, wie ich eine Datenstruktur realisieren könnte, die die Skelette der Körper angibt und mit der sich mein Ansatz performant realisieren lassen könnte?
Oder hat jemand einen anderen Vorschlag zur Kollisionsprävention?

MfG,
Malte
 

Marco13

Top Contributor
Teschner & Co haben ein bißchen was geschrieben, was in diese Richtung geht ( http://www.matthiasmueller.info/publications/heidelberger_vmv04.pdf ) - allerdings für deformierbare 3D-Objekte. Wenn man die Überschneidung erstmal hat, kann man ja i.a. ausrechnen, wie weit jeder einzelne Punkt eines Körpers vom Rand des anderen entfernt ist (d.h. wie tief er drin ist). Wie du in dem Bild auf den blauen Pfeil kommst, ist mir aber nicht ganz klar.
 
S

Spacerat

Gast
Wenn du schon weisst, wie du es berechnest, fehlen eigentlich nur noch die Flächengrenzen. Diese bekommst du, wenn du beim Iterieren über die Punkte von der Position des Objektes (pVot) für jede Dimension jeweils Maximal- und Minimalwerte speicherst. Bei deformierbaren Objekten muss das für jeden Frame wiederholt werden, bei allen anderen genügt einmal, so früh wie möglich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
L Kollision soll nur an oberer Seite (Breite) möglich sein Spiele- und Multimedia-Programmierung 6
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Greenfoot Kollision Spiele- und Multimedia-Programmierung 5
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
C Kollision zwischen 2 Kreisen Spiele- und Multimedia-Programmierung 3
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
F Bewegung/Kollision von Objekten auf Tastendruck Spiele- und Multimedia-Programmierung 6
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
Z Zugriff von externe Programme verhindern Spiele- und Multimedia-Programmierung 9
G Überlagern von Strings beim zeichnen verhindern Spiele- und Multimedia-Programmierung 3
F Neu zeichnen verhindern Spiele- und Multimedia-Programmierung 25
P Browsergame - Cheaten verhindern Spiele- und Multimedia-Programmierung 12

Ähnliche Java Themen

Neue Themen


Oben