Einige Physikfragen - Autorennspiel (Mal wieder)
Übersicht

![]() |
BaretBetreff: Einige Physikfragen - Autorennspiel (Mal wieder) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Nach langer Auszeit möchte ich endlich wieder zum proggen anfangen. Ich bin gerade bei den Vorbereitungen für ein kleines 2D-Autorennspiel. Für die Physik habe ich meine Physik-Bücher hervorgekramt und mich mal mit den diversen Formeln befasst. Leider habe ich noch einige Fragen bevor ich endlich beginnen kann. Wie errechne ich aus der Motorleisung(PS) und dem Drehmoment(Nm) die Antriebskraft die auf die Räder/Straße übertragen wird? Vielleicht hilft die Formel: Code: [AUSKLAPPEN] P=M*n*1/60*2Pi=M*n*0,1047 Leistung=Moment*Umdrehungen pro Minute * 1/60 * 2Pi
Wie ermittle ich den Übergang von Haftreibung zu Gleitreibung? Code: [AUSKLAPPEN] Fr=Fn*mü Reibkraft=Normalkraft*Reibzahl
Welchen Radius verwende ich zum Berechnen der Zentripetalkraft? Code: [AUSKLAPPEN] Fz=m*v²/r Zentripetalkraft=Masse*Geschwindigkeit²/Radius
Wenn ich die Zentripetalkraft mit der Haftreibungskraft gleichsetze, kann ich die maximal zulässige Geschwindigkeit für die Kurve berechnen. Aber...Ist das dann der Punkt an dem das Auto zu driften beginnt, oder ist das der Punkt an dem das Auto schon "abfliegt"? Code: [AUSKLAPPEN] m*v²/r=mü*m*g Masse*Geschwindigkeit²/Radius=Reibzahl*Masse*Erdbeschleunigung
Ich denke das wärs dann mit den Physik-Fragen aber ich hätt noch eine Frage bezüglich "DRIFTEN"! Ich habe einige andere Threads über Driften gelesen, aber irgendwie werde ich daraus nicht schlau! Bricht das Auto nur aus weil, bedingt durch das höhere Gewicht an der Vorderachse, eine geringere Reibung zwischen Reifen und Asphalt vorhanden ist? Wie kann ich 2 Punkte auf dem Auto definieren? Also einen Punkt auf der Hinterachse und einen auf der Vorderachse? Ich hoffe ich mache mich mit den ganzen Fragen nicht gleich unbeliebt! ![]() Vielen Dank im Voraus, Mfg Baret |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dafür das das Spiel in 2D ist hast du ganz schön hohe Ansprüche was die Physik angeht. Also ich würde zu all den Werten sowas wie ein Spielgefühl einbringen und mich nicht zu sehr in Variabelgrößen kümmern... Beispiel: Ein Ferngesteuertes Auto fährt so schnell an, als würde man dieses an ein richtigen PKW übertragen, so würde dieser in einer Sekunde bereits auf 100km/h beschleunigen und die Höhstgeschwindigkeit währe dann bei etwa 300 - 500 km/h... Und denoch würde keiner sagen, daß ein ferngesteuertes Auto nicht realistisch währe... Anderes Beispiel: Wenn ich bei Half-Life oder anderen Egoshootern durch die Gegend renne, dann etspräche das einer Geschwindigkeit von etwa 30km/h. Diese kann ich niemals mit meinen eigenen Füssen in der Wirklichkeit erreichen. Und auch hier wird sich niemand darüber beschweren...
Was ich machen würde ist die Werte nach 'Gefühl' eintragen und mit viel ausprobieren was halt am meisten Spielspaß bereitet. Dabei aber gleich von Angang an Frameunabhängig programmieren. Sonst wird das Umtragen später recht nervig... EDIT/ Jetzt kann ich mal versuchen ein paar Fragen zu beantworten... Kreisfahrt: Ich nehme an das dein Auto sich nicht auf der Stelle drehen kann, bei soviel Physik. Dann kannst du den Drehpunkt an welcher du das Image drehst auf die Mitte der Hinterachse legen. Das führt dazu das das Auto vorne einen größerer Kreis macht als hinten... Problematisch wirds dann wenn das Auto irgendwo gegenfährt und ins schleudern kommt. Dann siehts wieder nicht so gut aus... Driften: Nehmen wir an du machst eine 'Driftabfrage'. Also wenn Geschwindigkeit größer ist als x dann Driftmodus... Problem: Beim driften verliert das Auto an Geschwindigkeit. Was bedeutet, das der Driftmodus wieder zur normalen Fahrt wird, allerdings bei leichter 'Schräglage'. Das Auto macht ein Frame dann eine 'verstärkte' Lenkung. Was ja eigendlich ok ist. Problematisch ist nur eine Stufenabfrage jetzt driften und jetzt nicht... Denn nehmen wir an, daß Auto schleudert schnell umrum, da es eben noch ein Baum gestreift hat. In dem Frame wo es wieder geradeaus zeigt soll das Driften nicht anhalten. Da muß also auch noch ein Drehimpuls rein... Drehimpuls bekommst du leicht hin, wenn du zur Rotationsposition noch eine Rotationsgeschwindigkeit einfügst deren Rotationsbeschleunigung nicht größer als ein bestimmter Wert sein kann, ausser es wird ein Gegenstand berührt... |
||
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die schnelle Antwort!
Ok, du hast mich überzeugt dass ich vielleicht nicht sooo viel Physik verwenden sollte. ![]() Aber sollte ich jetzt z.B.: den Übergang von Haften zu Gleiten (beim Bremsen) einfach zeitabhängig machen? Das heißt, wenn ich länger als 1Sekunde durchgehend bremse (und kein ABS ![]() Zum driften: Ist die Geschwindigkeit nicht trotzdem gleich? Die Resultierende Geschwindigkeit müsste doch gleich bleiben!? Zwar wird die Geschwindigkeit in Fahrtrichtung geringer, dafür kommt jedoch die seitliche Bewegung (90° zur "Seh-Richtung") hinzu. Sicher wird durch die erhöhte Reibung Geschwindigkeit abgebaut aber das könnte ich doch vernachlässigen, oder? Das mit der Rotationsgeschwindigkeit bzw. Beschleunigung hört sich gut an, damit könnte ich doch auch den normalen Drift Steuern!? Also eine Rotationsgeschwindigkeit und Beschleunigung fürs Übersteuern und eine für Kollisionen!? Die Rotationsgeschwindigkeit fürs Übersteuern erhöhe ich einfach bei jeder Lenkbewegung. Wird nicht gelenkt nimmt dieser Wert wieder ab. Ab einem gewissen Wert gerät das Auto ins Schleudern. Das müsste eigentlich so funktionieren, oder? Noch eine Frage: Sollte ich, um die "Stärke" des Dralls zu ermitteln, die Position des Aufpralls (Stelle am Auto, vorne,mitte,hinten) überprüfen, oder einfach einen Standart-Wert für z.B.: eine Kollision mit einem Baum wählen? Vielen Dank im Voraus, Mfg Baret |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kennst du den schon?
http://home.planet.nl/~monstrous/tutcar.html |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, also eines vorweg. Habe selber mal aus Spaß ein solches Spiel mit wesentlich weniger Physik gemacht. Habe aber festgestellt, daß je mehr Grundphysik man in seinen Objekten einbaut umso realisischer funktionieren dann auch bisher unvorhersehbare Dinge. Beispielsweise wurde hier im Forum schon hundertmal danach gefragt wie man eine Zentrifugalkraft bei einem Raumschiffspiel berechnet. Da kammen Formel vor, von denen ich noch nie was gehört habe. Dabei ist das ganz einfach. Wenn man zB per Tastendruck eine Beschleunigung angibt, diese an der Geschwindigkeit ändert welche die Position ändert. Kommt die Zentrifugalkraft von allein... Also was ich damit sagen will ist, daß man sicherlich die ganzen Formeln aus dem Physikunterricht vergessen kann, denn nur das Physikalische Verstäntnis ist wichtig. Denn ein Linieal oder ein Geodreieck hat mein Rechner nicht. Wenn dann müsste ich eines aufwendig programmieren, oder es gleich lassen und ein Problem anders lösen...
Zu deinen Fragen... Den Übergang vom haften zum gleiten würde ich nicht Zeitabhängig machen, sondern von der Kraft abhängig... Was passiert denn bei diesem übergang? Alle Beschleunigungen wie anfahren, bremsen oder lenken wird die Kraft auf die Straße übertragen. Diese aber hatt aber ein gewissen Maximalwert der zu übertragen ist. Die Kraft kann einfach mit Geschwindigkeitsvektoren berechnet werden... Nehmen wir an man hat eine X und Y -Position in xp und yp gescpeichert, dann kommt noch die Geschwindigkeit xg, yg... Die Geschwindigkeit wird durch Benutzereingaben beeinflusst... Wenn jetzt eine art Zukuftsvektor der alten Position und Geschwindigkeit genen der neuen Position berechnet wird, kann die Kraft per sqr berechnet werden. Ist die Kraft größer als x dann berechne Drift hinzu... Die Stärke des Dralls würde ich nicht statisch angeben. Sieht nicht so schön aus... Die kann man beispielsweise mit Atan2 berechnen. Kollisionspunkt (nur wenn bekannt, bei ImagesCollide muß eine eigene 'Kollisionsposition'-Routine her) und Fahrzeugmittelpunkt mit Geschwindigkeitsvektor den Drall berechnen... Problematisch wird zu berechnen sein, wann sich das Auto wieder einkriegt. Es besteht ja die Möglichkeit sich während eines Dralls wieder in eine ruhige Fahrt zu gelangen, wenn der Drehimpuls nicht so stark war wie der übrig gebliebene Geschwindigkeitvektor... |
||
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Antworten!
Das Tutorial kannte ich noch nicht. Ist wirklich sehr gut! Werde mich jetzt mal an die "Arbeit" machen und die Fahr-Physik mal zu erstellen. Werde versuchen ein gutes Mittelding zwischen "Realismus" und "Vernunft"*gg* zu finden. Ok, ich werde den Auftreffwinkel berechnen!^^ Den Befehl ATan2 kannte ich bisher noch nicht. Werde mich mal etwas mit dem Befehl spielen! Soweit ich das verstehe kann man mit Atan2 ja zusätzlich zum Winkel den Quadranten herausfinden. Das heißt ich könnte also ermitteln von welcher Richtung der Wagen auf das Hindernis getroffen ist. Ich werde mich jetzt mal mit den Formel usw. etwas spielen. Sobald ich brauchbare Ergebnisse habe, stelle ich sie selbstverständlich in diesem Thread! Hoffe ich übernehme mich nicht gleich mit dem ersten Projekt nach langer Auszeit! ... ist denke ich schon passiert*g* Danke nochmal! Mfg Baret |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group