AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Konzept für saubere Kollisionserkennung
Thema durchsuchen
Ansicht
Themen-Optionen

Konzept für saubere Kollisionserkennung

Offene Frage von "Florian H"
Ein Thema von Florian H · begonnen am 20. Jul 2009 · letzter Beitrag vom 20. Jul 2009
 
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

Konzept für saubere Kollisionserkennung

  Alt 20. Jul 2009, 09:55
Aloha,


Ich entwickle derzeit ein Physik-Spiel (für die Smartphone-Plattform Android) und brauche dabei natürlich auch Kollisionen zwischen beweglichen Elementen (gegeben durch Position X,Y und Geschwindigkeit X,Y).
Das ist ganz grundsätzlich eigentlich kein Problem, ich schau' halt, ob sich ein Objekt mit einem anderen überlappt und wenn ja, dann berechne ich deren neue Geschwindigkeit ("abprallen"). Zusätzlich "trenne" ich die Objekte wieder, um die Überlappung zu beseitigen (sodass sie sich berühren, aber nicht ineinander reinragen).

Allerdings führt das schnell zu Problemen, wenn mehrere Objekte aufeinanderliegen (beispielsweise ein großer Haufen Kugeln, der von der Schwerkraft nach unten gezogen wird). Hier kollidieren ja ständig alle Bälle und ändern ihre Richtung und werden neu platziert etc. - das führt zu hässlichen Sprüngen und durch mathematische Ungenauigkeiten bzw. sich aufschaukelnde Fehler dazu, dass Kugeln dauerhaft in andere reinrutschen oder komplett die Positionen vertauschen.
Der Grund: Eine Kugel kollidiert (während sie da auf dem Haufen liegen) mit einer anderen -> diese wird abgestoßen -> stößt auf eine andere Kugel -> wird wieder zurückgestoßen -> stößt wieder auf die andere -> ... doof.

Das ganze Konzept ist imo schon fehlerträchtig, weil immer nur einzelne Kollisionen zweier Objekte betrachtet werden, unabhängig davon, was alles davon abhängt bzw. worauf das Einfluss hat.
Doch was ist die bessere Methode? Wie machen es Physiksimulationen (wie Phun)? Wie erfasst man das gesamte Gefüge und nicht nur immer 1:1-Kollisionen?

meine Frage bezieht sich nicht auf die eigentliche Umsetzung in Code, ich suche eher ein Konzept wie man sowas angeht. Habe bei google leider nichts gefunden und mich in mehrere hunderttausend Zeilen Code einzulesen, nur um irgendwann die Kollisionsabfrage daraus extrahieren zu können, ist jetzt auch nicht so praktikabel

Ich will keine 100% realistische Physik (das gibt die Rechenleistung des Gerätes gar nicht her), aber sie soll funktionieren!


Grüßle, flo
Florian Heft
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz