Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-09-2004, 18:56   #1 (permalink)
neuling
 
Registriert seit: Aug 2004
Beiträge: 198
Question Driftfunktion für Autorennspiel

Hallo

Der Code der unten steht ist quasi das Herzstück meines Autorennspiels
der Winkel des Autos wird in 2 Vektoren x und y (Ich glaub mathematisch richtig heisst daß in diesem Fall Steigungen) umgerechnet. die mit der Geschwindigkeit
des Autos multipliziert werden und so die neue Position des Autos errechnen.
Soweit so gut, leider fährt das Auto egal wie schnell immer perfekte Kurven,
es wär aber besser wenn das Auto ab einer gewissen Geschwindigkeit vom
Kurs abkommt spricht anfängt zu driften.
Hat jemand eine Ahnung wie man sowas machen kann?
Mit Dank im Voraus.

mfg
Clemens



PHP-Code:
this.angle %= 360;      
this.vektor_x Math.sin((this.angle)*Math.PI/180);      
this.vektor_y Math.cos((this.angle)*Math.PI/180);      
this.car_x this.car_x + (this.speed this.vektor_x);       
this.car_y this.car_y + (this.speed this.vektor_y); 

Geändert von Clemenses (16-09-2004 um 18:57 Uhr)
Clemenses ist offline   Mit Zitat antworten
Alt 16-09-2004, 19:08   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
ich denke, dein Codestück ist zu "spät" im Code.
Das schlittern musst du eher beim lenken einplanen.

Du bräuchtest dann einmal einen Vektor für die Ausrichtung deines Autos, und einen für die Bewegung. Der Vektor für die Bewegung muss dann dem für die Ausrichtung immer etwas "hinterher hinken", z.b. indem er immer auf den Druchschnitt vom Richtungsvektor und sich selbst gesetzt wird.

Gruß Janosch
Janoscharlipp ist offline   Mit Zitat antworten
Alt 16-09-2004, 22:37   #3 (permalink)
neuling
 
Registriert seit: Aug 2004
Beiträge: 198
Hi

Danke für den Hinweis. Das Driften an und für sich klappt jetzt, es hat sich
allerdings ein Problem dabei aufgetan. Wenn der Winkel über 360 Grad oder unter 0 geht werden 360 dazu oder weggezählt.Das verträgt sich aber überhaupst nicht mit meiner Driftformel unten, es kommen vollkommen falsche werte raus. Warum das so ist, ist mir klar, hab aber keine Ahnung was ich
dagegen machen kann.
mfg
Clemens


PHP-Code:
if(this.angle<0){this.angle 360 this.angle;}
if(
this.angle>360){this.angle this.angle 360;}
    
    
//Die Formel fürs driften    
this.drift = (this.angle this.drift*Math.abs(this.speed)) /(1+Math.abs(this.speed));
    
    
    
this.drift %= 360;        
    
this.stepfactor_x Math.sin((this.drift)*Math.PI/180);
    
this.stepfactor_y Math.cos((this.drift)*Math.PI/180);
    
    
this.car_x this.car_x + (this.speed this.stepfactor_x); 
    
this.car_y this.car_y + (this.speed this.stepfactor_y); 
Clemenses ist offline   Mit Zitat antworten
Alt 17-09-2004, 17:07   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
ich blicke nicht genau, was du da machst, aber ich glaube, du müsstest zu drift auch 360 dazu zählen, wenn du dies bei angle machst und andersrum.
Janoscharlipp ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele