GLBasic forum

Other languages => GLBasic - de => Topic started by: Tenorm on 2008-Aug-13

Title: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-13
Hi,

ich hab mal spontan versucht, ein kleines 3D-Auto-Game im Gelände zu machen. Damit mein Auto auch immer so steht, wie es soll, also jenachdem ob es bergauf oder schräg fährt, messe ich die Entfernung von Reifen zu Boden an allen 4 Reifen. Ich möchte dann das Auto so drehen, dass es richtig steht. Funktioniert aber nicht richtig...

Hier der Cdeausschnitt:

Code (glbasic) Select

lv=X_COLLISIONRAY(99,0,car_x+SIN(  30+car_yrot)*1.5,car_y,car_z+COS(  30+car_yrot)*1.5,0,-1,0)
rv=X_COLLISIONRAY(99,0,car_x+SIN(- 30+car_yrot)*1.5,car_y,car_z+COS(- 30+car_yrot)*1.5,0,-1,0)
lh=X_COLLISIONRAY(99,0,car_x+SIN( 150+car_yrot)*1.5,car_y,car_z+COS( 150+car_yrot)*1.5,0,-1,0)
rh=X_COLLISIONRAY(99,0,car_x+SIN(-150+car_yrot)*1.5,car_y,car_z+COS(-150+car_yrot)*1.5,0,-1,0)

car_xrot=ASIN((lv+rv)-(lh+rh))/10//durch 10 weil der Ausschlag sonst zu extrem wird
//"car_yrot" wird durch spieler bestimmt
car_zrot=ACOS((lv+lh)-(rv+rh))/10//durch 10 weil der Ausschlag sonst zu extrem wird


Funktioniert aber nicht.

Danke schon mal

Gruß

Tenorm
Title: Re: Hilfe bei 3D-Autogame
Post by: Sebastian on 2008-Aug-13
Was funktioniert denn nicht? Hast du einen Screenshot?
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-13
Das Auto dreht sich nicht/falsch. Lange erklärung folgt, muss erst noch über verständliche Formulierung nachdenken  =D
Schon mal der screenshot

Danke für die schnelle antwort  :good:

REEDIT:
OK, Liste der Probleme:
-> x-Rotation funktioniert nur bei 3 von 4 Seiten  :'( (also jenach himmelsrichtung, von der ich den berg anfahre)
-> z-Rotation funktioniert nicht/falsch
-> Manchmal haben 2 oder mehrere der 4 messpunkte den selben, bzw. den kehrwert, was ich mir nicht erklären kann, da das ja nur der fall ist, wenn man die rampe gerade anfährt...

REREEDIT:
Erklärung zum screenshot(von oben nach unten)
// zeile 1-5 erklärt/unwichtig
messpunkt links vorne
messpunkt rechts vorne
messpunkt links hinten
messpunkt rechts hinten
x-rotation
y-rotation
z-rotation

[attachment deleted by admin]
Title: Re: Hilfe bei 3D-Autogame
Post by: Schranz0r on 2008-Aug-13
Da würde sich das Newton ganz gut machen ;)
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-13
 Eigendlich kann GLB ja alles was gebraucht wird (und in newton bin ich noch ned richtig drin  :whistle: )
Title: Re: Hilfe bei 3D-Autogame
Post by: Schranz0r on 2008-Aug-13
für die collision und richtungsangaben bestimmt von Vorteil ;)
Title: Re: Hilfe bei 3D-Autogame
Post by: Kitty Hello on 2008-Aug-14
Nun, Du hast 4 Punkte aber nur eine Drehrichtung des Fahrzeugs.
Ich würde daher das Fahrzeug auf 3 "Räder" ständern. 2 Vorne, eins hinten in der Mitte.

Jetzt hast Du die Höhen an den 3 Punkten. Wenn Du die Vektoren AB und AC kreuzt, hast Du einen "Nach oben" Vector. Der sollte dir helfen beim Ausrichten. Ist aber nicht trivial. Da wäre Newton schon einfacher.
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-14
Die idee mit 3 punkten is ned schlecht, aber da würde ich probleme bekommen, wenn mein auto mit den hinterreifen auf 2 hügeln steht (collisionray würde ja dann, das "tal" ausmessen und das auto würde "versinken"). Ich hab mal die exe hochgeladen.
http://rapidshare.de/files/40232396/Auto.zip.html (http://rapidshare.de/files/40232396/Auto.zip.html)
Auf einer seite des Berges funktionierts einwandfrei, auf der anderen seite ist die z-rot verkehrtherum  :S
Title: Re: Hilfe bei 3D-Autogame
Post by: Sebastian on 2008-Aug-14
Kann es sein, dass du die Blickrichtung des Fahrzeugs nicht berücksichtigst. Bei mir stimmen die Achsen nämlich erst dann nichtmehr, wenn ich das Auto neu ausrichte. Solange ich gerade aus fahre stimmt eigentlich alles einigermaßen.
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-14
Meinst du mit blickrichtung die y-rotation?
Die messlinien befinden sich immer unter den rädern, auch wenn der wagen sich dreht:

lv=X_COLLISIONRAY(99,0,car_x+SIN(  30+car_yrot)*1.5,car_y,car_z+COS(  30+car_yrot)*1.5,0,-1,0)

EDIT: Versuch mal den Berg von der anderen seite aus anzufahren, da passt die z-rot garnicht, x-rot passt immer. Danke.
Title: Re: Hilfe bei 3D-Autogame
Post by: Schranz0r on 2008-Aug-15
Klar passts dann net . Da die Drehung zur Welt bezogen ist . Da dreht sich die Achse nicht mit ;)

du brauchst das:

X_PUSHMATRIX
X_POPMATRIX


;)
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-15
check ich ned  :O
soll ich die welt beim auto mitdrehenlassen?
Title: Re: Hilfe bei 3D-Autogame
Post by: Schranz0r on 2008-Aug-15
Nein, dein Auto brauch seine eigene Matrix sprich vorne muss immer der Z+ sein, links  X+ und oben Y+.
Egal wie sich es dreht.

Dafür brauchst du dann POP- und PUSHMATRIX.
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Aug-15
Wie geht das, ich denk mit x_pop/pushmatrix kann man nur weitere objekte an eine bestehende Matrix anhängen, nicht eine neue erstellen.
Title: Re: Hilfe bei 3D-Autogame
Post by: Schranz0r on 2008-Aug-15
Ich mach dir nachher ein kleines Beispiel, bin grad noch am FMod Wrappen
Title: Re: Hilfe bei 3D-Autogame
Post by: Tenorm on 2008-Dec-02
Hast mir vor 4 Monaten versprochen ein BSP zu machen  :'(

Bin zwar schon beim neuen Projekt, aber das Problem is immer noch da  =D
Schau grad des Newton durch, werd aber ned schlau aus den BSPs, bei mir kommen nur Fehlermeldungen von Compiler und Windows und wenns mal läuft funktionierts eigendlich au ned richtig. Warte ja immernoch auf das Tutorial (von Gernot?)  :whistle: