Auto - Heck ausbrechen
Übersicht

![]() |
AmateurBBBetreff: Auto - Heck ausbrechen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich programmiere gerade ein 3D-Autospiel. Ich habe die 3D-Modelle usw. fertig, aber die Autophysik macht mir zu schaffen, da sie möglichst realistisch sein soll. Mein Code für die Physik ist bisher folgender (den Rest hab' ich der Übersichtlichkeit halber weggelassen): Code: [AUSKLAPPEN] Graphics3d 640, 480, 32
setbuffer backbuffer() camera=CreateCamera() Rotateentity camera, 90, 0, 0 PositionEntity camera, 0, 20, 0 light=CreateLight() auto = CreatePivot() ;Antriebspivot karosse = CreateCube(); karosse rad1 = CreateCube(karosse); räder rad2 = CreateCube(karosse) rad3 = CreateCube(karosse) rad4 = CreateCube(karosse) PositionENTITY rad1, 0.69, 0.28, -1.02; räder positionieren PositionENTITY rad2, -0.69, 0.28, -1.02 PositionENTITY rad3, 0.66, 0.28, 1.3 PositionENTITY rad4, -0.66, 0.28, 1.3 RotateMesh rad2, 0, 180, 0; räder richten RotateMesh rad4, 0, 180, 0 PositionEntity auto, 0, 0, 5; pivot versetzen While Not KeyDown(1) if Keydown(205) lenk# = lenk# - ((40-ABS(gesw#))+lenk#)/20;lenken if Keydown(203) lenk# = lenk# + ((40-ABS(gesw#))-lenk#)/20 if Keydown(200) gesw# = gesw# + .1; beschleunigen if Keydown(208) gesw# = gesw# - .1 if keyhit(28) then gesw# = 0; notbremse if keyhit(3) then grip = 1 - grip; gripcheat lenk# = lenk# - SGN(lenk#); automatische rücklenkung RotateEntity rad3, 0, lenk#, 0 ;gfx räder drehen RotateEntity rad4, 0, lenk#, 0 if grip = 0 then; grip fehlt RotateEntity auto, 0, EntityYaw#(karosse)+lenk#, 0 endif MoveEntity auto, 0, 0, gesw#/10 ; Vorwärts PointEntity karosse, auto; karosse mitdrehen MoveEntity karosse, 0, 0, EntityDistance(karosse, auto)-1.32; karosse anhängen RenderWorld Flip wend Jetzt soll bei bestimmen Aktionen (Handbremse, Öl, enge Kurven) das Heck ausbrechen und das Auto ins Schleudern geraten. Bisher blockiert nur die Lenkung und das Auto rutscht nach vorn. Was muss ich ändern? |
||
Notebook Medion 97400 | 2 Ghz | 2x ATI Radeon XPRESS 200M (onboard) | Blitz3D 1.86 | Windows 7 / Windows XP | http://www.powerswitch-entertainment.de.vu/ |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein ansatz wäre ja Verlet Physik im einfachem sinne. Guck dir mal meine PanzerPysik im Codearchiv an. Ich erkläre das hier mal kurz :
Es gibt 5 Objecte. 4 sind die einzellnen Räder das fünfte ist das Auto. Jetzt kann jedes Rad bewegt werden hat also eine geschwindigkeit und x/y/z positionen. Dann hat das Auto bspw. hinterrad antrieb, die räder bewegen sich um 0.5 nach vorne. Jetzt kommt die Physik ins spiel : Du verbindest die Räder mit unsichtbaren "federn" wie bei Verlet. und zwar so das jedes Rad mit jedem verbunden ist. Such dafür mal nach "Verlet" hier im Forum, wirst du einiges zu finden. Das Prinzip hierbei ist es, das wenn die Räder sich auseinader bewegen, sie wieder zurückgesetzt werden, also so das wenn sich die räder um 0.5 nach vorne bewegen, das die vorderäder sich um 0.5 mit nach vorne bwegen. Dreht man jetzt die Beiden vorderen Räder, so bewgen diese sich seitich vom Auto weg. Also werden die hinterräder hinter die Vorderräder gesetzt und fertig. Nur noch die Winkel zwischen den Rädern ermitteln und das Auto draufsetzten - fertig. mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Hakkai |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heckausbruch nennt man Übersteuern.
Über die Vorderreifen rutschen ist Untersteuern. Beim Übersteuern muss man besonders Hinterradbetriebene Fahrzeuge von Allrad und Frontantrieb unterscheiden. Also ich geh mal davon aus das du mit Frontantrieb übersteuern willst. (nicht gerade ein wahrer Drift, aber was sollst) Beschleunigen -> Fahrzeug lehnt sich nach hinten, mehr Grip hinten als vorn. Lenken -> Fahrzeug lehnt sich auf die Äuseren Räder -> Grip ausen mehr als innen, Fliehkraft beachten. + abruptes Bremsen -> Fahrzeug lehnt sich nach vorn, hinten kaum noch grip. : Da die Räder hinten quasi schweben kommt das Heck und zwar in die Richtung wohin die Fliehkraft vor dem Lenken gewirkt hat. Also beim rechts um die Kurve fahren, rutscht das Heck links an dir vorbei. Bei Frontantrieb kann man gleich nach dem Einlenken die Handbremse verwenden um die Spurhaltenden Räder (Hinterräder) schon früher ins Schliddern zu bringen Das ist sogar notwendig ... falls die normale Bremse nicht ausgereicht gehabt hat oder man nicht schnell genug war um genügend Fliehkraft aufzubauen. Beim Heckantrieb/Hinteradantrieb kannst du beim ausbrechen schon wieder gasgeben, da er die Kraft der Hinterräder eh nicht mehr auf die Straße übersetzt bekommt, das ist dann ein richtiger Drift da er länger anhält als simples Handbremse ziehen und warten bis es vorbei ist. Wie du siehst brauchst du irgendwo noch eine Variable Fliehkraft, wenn du die Physik richtig umsetzen willst. Ich hoffe ich konnte dir etwas sagen das du nicht bereits wusstest. Kenne mich mit Rennspielen und Hinterradbetriebenen Fahrzeugen nicht besonders aus, aber das ist so die Theorie wenn ich sie richtig verstanden habe. |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
In diesem Tutorial wird sehr gut beschrieben, wie man eine Fahrphysik in 2D aufbaut. Je nach dem, wie deine Strecken aussehen, reicht das bereits; wenn sich dein Fahrzeug aber noch überschlagen soll oder ähnliches, brauchst du eine echte Physikengine wie etwa ODE oder Newton (soweit ich weiss, haben beide Autobeispiele dabei). | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
AmateurBBBetreff: Danke |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, ich werde mich erstmal in die Physikenginen reinarbeiten. ![]() |
||
Notebook Medion 97400 | 2 Ghz | 2x ATI Radeon XPRESS 200M (onboard) | Blitz3D 1.86 | Windows 7 / Windows XP | http://www.powerswitch-entertainment.de.vu/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group