Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

14.03.2011, 13:50

Kollisionsbehandlung, Schieben

Habe für ein 2D javascript spiel eine kleine physikengine implementiert. Eigentlich habe ich nur ein simples Kugelstossprinzip eingebaut, das funktioniert ganz anständig. Was nicht so gut klappen will, ist Objekte zu schieben. Ich habe mir gestern abend eine Lösung zusammengebaut, die nicht so schlecht wirkt, aber mich nicht ganz überzeugt. Evtl. liegt dies an meiner physikalisch unkorrekten reibungsimplementation, bei der ein objekt ohne inneren antrieb sich über die zeit immer stärker verlangsamt. Oder ist das Schieben an und für sich ein physikalisches Problem, das nicht mit dem Stossgesetzt gelöst werden kann. Aktuell bin ich zu stark am probieren und habe keine wirklich Lösung die auch sinnvoll erscheint.

Frage: Gibt es für das Schieben von Objekten eine spezielle Implementation, oder müsste das Stossgesetz ausreichen?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »marcgfx« (14.03.2011, 15:30)


Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

2

14.03.2011, 15:31

Ich denke mal es wäre jedem geholfen wenn du mal zeigen würdest was du bis jetzt hast.

MfG Stazer

3

14.03.2011, 15:59

ja da hast du bestimmt recht, nur bin ich noch nicht ganz release-bereit ;) . sobald ich soweit bin werd ich auch was zeigen.

die frage war allgemein und richtet sich an personen die sich damit schon auseinandergesetzt haben. wenn mir einer sagen kann, dass es ausreicht das stossgesetz sauber zu implementieren, dann ist auch gut.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

14.03.2011, 16:12

Was genau verstehst du unter "das Stoßgesetzt implementiert" und was genau ist diese Sache mit deiner "Reibung"!?

5

14.03.2011, 16:58

http://de.wikipedia.org/wiki/Sto%C3%9F_(Physik)

ich habe den ideal elastischen stoss implementiert. allerdings habe ich damit vielleicht schon die frage beantwortet. warscheinlich müsste ich den plastischen Stoß implementieren um den gewünschten effekt zu erhalten... oder noch besser der reale stoss :)

die reibung ist einfach eine reduktion der geschwindigkeit. z.b. pro sekunde wird 10% der geschwindigkeit verloren. es ist keine korrekte physikalische implementation.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »marcgfx« (14.03.2011, 18:18)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

14.03.2011, 17:02

Einfache Reibung sollte eigentlich nicht so schwer zu implementieren sein wenn du eine vernünftige Kollision implementiert hast denk ich?

7

14.03.2011, 17:16

da könntest du recht haben. obwohl ich mit der reibungszahl nicht allzuviel anfangen kann. ich müsste in fahrtrichtung eigentlich den rollwiederstand für fahrzeuge berechnen, oder sowas in der art. ich denke aber es ist einleuchtender wenn ich mit 10% verlust pro sekunde arbeite. zumindest kann ich mir darunter mehr vorstellen. es ist sicher nur eine approximation, allerdings reale physik kann ich sowieso nicht nachbilden für ein fahrzeug.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

14.03.2011, 17:24

Die Reibzahl ist einfach nur ein Proportionalitätsfaktor der die beiden beteiligten Materialien berücksichtigt. Sie gibt an um wieviel die Reibkraft stärker als die Kraft normal zur Oberfläche (also die Kraft zwischen den aneinander reibenden Flächen) ist, damit kannst du dir also ganz einfach die Widerstandskraft als Produkt von Reibzahl und Kraft normal zur Oberfläche berechnen, das ist alles.

9

14.03.2011, 17:37

"Reale Physik" kann man so auch gar nicht berechnen. Es ist imemr nur eine mehr oder weniger gute Näherung. Man muss ja nicht nur die Reibung zwischen Boden und Objekt berechnen, sondern theoretisch auch so Dinge wie Luftwiderstand des sich bewegenden Objektes. Und natürlich werden die Objekte auch ein bisschen warm, wodurch sich ihre Eigenschaften verändern und sie verformen sich beim Bewegen (Material Abreibung) und die ist natürlich ungleichmäßig und so weiter.
Letztendlich ist alles was du überhaupt berechnen kannst nur Näherungen für die du irgendwelche Durchschnittswerte benutzt. Du darfst dich nicht fragen "korrekt oder unkorrekt" sondern "wie genau brauch ich es"?
Das mit den x% klingt da schon sehr vernünftig.
Lieber dumm fragen, als dumm bleiben!

10

14.03.2011, 19:28

also mit der "realen kollision" läufts schon ein bisschen besser. hab dennoch einiges an korrekturparametern drin, sonst fängt die physik an durchzudrehen. besonders schwierig ist das handhaben von vielen kollisionen die gleichzeitig auf die selben objekte einwirken. damit ihr euch in etwa vorstellen könnt in welcher situation ich bin hab ich noch ein bild angehängt :) . auf jeden fall bin ich für den moment mal ganz zufrieden mit dem resultat und es ist auch recht glaubhaft.
»marcgfx« hat folgendes Bild angehängt:
  • collide140311.jpg

Werbeanzeige