[B3D] Ausrichten mit ATan2 ruckelt!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Hops

Betreff: [B3D] Ausrichten mit ATan2 ruckelt!

BeitragMo, Aug 07, 2006 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich wollte mal einige Fragen über das ausrichten(kippen) von autos... an Terrains, Bergen... loswerden! Ich weis, es gab hier schon viele Beiträge über dieses Thema, aber ich habe mit der Suche nicht meine Fragen beantwortet bekommen!
Also: Ich hab bis jetzt schon:

Code: [AUSKLAPPEN]

x# = entityx#(camera)
y# = entityy#(camera)
z# = entityz#(camera)

terra_y# = terrainy#(terrain, x#,y#,z#) + 20
positionentity camera, x#,terra_y#,z ;camera in Augenhöhe positionieren

hinten# = terrainy#(terrain, x#,y#,z#-4) ;Höhe hinten
vorne# = terrainy#(terrain, x#,y#,z#+4);Höhe hinten

if hinten# > vorne# then dif# = hinten# - vorne# else dif# = vorne# - hinten# ;differenz bilden

winkel = ((Atan2(dif#, 8)+360) mod 360) ; Winkel zwischen 0-360°

rotateentity camera, -winkel, 0,0




Es Funktioniert eigentlich einigermaßen, aber es zuckt/ruckt beim Laufen immer wenn es verschiedene Höhen gibt! Ich bräuchte das zum ausrichten eines autos an einem Berg/einer Straße!
Hat jemand einen Vorschlag, um das zucken zu vermeiden?
Wenn es eine bessere möglichkeit gibt... Her damit Laughing
Achja: Ich wollte eigentlich nur zur notlösung die Straße bei meinem f1-Spiel als terrain machen... gibt es eine schöne möglichkeit mei meshes (also ohne TerrainY ?)
Wäre sehr dankbar, wenn einer einen vorschlag hätte (oder einem Link zu einem Thread. Such schon die letzte zeit immer nach "auto"m "berg", "ausrichten"...)
Danke! Puh.... Very Happy
Grüße



EDIT:
Wäre es für ein Rennspiel zu langsam, an jedem rad einen pivot zur prüfung(per Collisions o.ä.) zu machen und diese dann so weit runter zu setzen, bis sie auf der Straße sind und dann das Auto irgendwie mit Atan2 an den Vier Pivots auszurichten? Man könte es anschließend soweit es geht runtersetzen, wenn es die Collisions-reaktion stoppen hat! Aber ist das mit den Collisionen.. nicht zu langsam für ein Action-spiel?

StepTiger

BeitragMo, Aug 07, 2006 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
wäre es nicht viel einfacher mit:
Code: [AUSKLAPPEN]
dif#=abs(hinten#-vorne#)
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

BlackZero

BeitragDi, Aug 29, 2006 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
hii,

also ich habe ähnliches problem wie du, ich möchte nämlich auch anstelle eines terrains meshes verwenden können aber da hackst noch.

hier hast du den link wo es wirklich absolut rukkelfrei und flüssig aussieht
und auch schnell genug ist, das ist genau das was du suchst.
nur frag mich nicht wie man das auf Meshes anwenden kann, wenn ich das wüsste wär ich glücklich, ich verzweifle nämlich ´langsam daran

Hier der Link

http://www.blitzmax.com/codear...hp?code=67

falls du etwas herausbekommst wie man das auf meshes anwendet wäre ich dir sehr dankbar das hier zu posten

StepTiger

BeitragDi, Aug 29, 2006 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
achso!

Das Problem ist, dass du
winkel=
machst

damit es nicht ruckelt musst du
winkel#=...

und dann eben
rotateentity cam, -winkel#,...
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

5k41

BeitragMi, Aug 30, 2006 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube ein anderes problem ist, das es schon bei sehr kleinen hügeln einigermaßen stark ausschlägt, vielleicht solltest du jeden schleifendurchlauf den alten winkel speichern und beim nächsten den mittelwert errechnen oder irgendwie anders tricksen...
Achja, du könntest generell ne If abfrage einbauen, die irrelevante (minimale) winkel gleich von vorn herreich wieder auf 0 setzt

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group