malediction
13.01.2009, 23:56
nabend allerseits,
ich bin schon seit einiger zeit dabei, ein programm zu schreiben, mit dem der asuro kollisionen auswertet und dann wendet o.ä.
dazu hab ich angefangen, eine funktion zum wenden zu schreiben, in der ich nur gradzahl und richtung übergebe.
hier mein quelltext (nur von der funktion, rest folgt):
void wenden(int grad, char richtung) //funktion zum wenden
{
int degree=0; //variablen deklarieren, die ich brauche
char dir;
degree=grad; //übergabe der parameter an die internen variablen
dir=richtung;
if ((degree>=0)&&(degree<120)) { degree=degree*0,85; } //das hier hab ich nur für die anpassung gemacht,
else if ((degree>120)&&(degree<240)) { degree=degree*0,9; } //da mein asuro immer zu große winkel gefahren ist.
else if ((degree>240)&&(degree<=360)) { degree=degree*0,95; } //die werte hab ich experimentell ermittelt
if (dir=='r') {} //rechtskurve, alles wie gehabt
else if (dir=='l') { degree=degree*(-1); } //linkskurve, gradzahl mit -1 multiplizieren
Go(-80,200); //stück zurücksetzen
Turn(degree,200); //drehen
}
//aufruf der funktion sollte dann beispielsweise so aussehen:
wenden(90,'r');
mein problem ist jetzt, dass asuro zwar das stück rückwärts fährt, sich aber nicht wie gewollt dreht. er dreht sich gar nicht.
ich hab meinen fehler nicht finden können. vielleicht kann mir ja wer helfen.
danke schonmal,
grüße, malediction.
ich bin schon seit einiger zeit dabei, ein programm zu schreiben, mit dem der asuro kollisionen auswertet und dann wendet o.ä.
dazu hab ich angefangen, eine funktion zum wenden zu schreiben, in der ich nur gradzahl und richtung übergebe.
hier mein quelltext (nur von der funktion, rest folgt):
void wenden(int grad, char richtung) //funktion zum wenden
{
int degree=0; //variablen deklarieren, die ich brauche
char dir;
degree=grad; //übergabe der parameter an die internen variablen
dir=richtung;
if ((degree>=0)&&(degree<120)) { degree=degree*0,85; } //das hier hab ich nur für die anpassung gemacht,
else if ((degree>120)&&(degree<240)) { degree=degree*0,9; } //da mein asuro immer zu große winkel gefahren ist.
else if ((degree>240)&&(degree<=360)) { degree=degree*0,95; } //die werte hab ich experimentell ermittelt
if (dir=='r') {} //rechtskurve, alles wie gehabt
else if (dir=='l') { degree=degree*(-1); } //linkskurve, gradzahl mit -1 multiplizieren
Go(-80,200); //stück zurücksetzen
Turn(degree,200); //drehen
}
//aufruf der funktion sollte dann beispielsweise so aussehen:
wenden(90,'r');
mein problem ist jetzt, dass asuro zwar das stück rückwärts fährt, sich aber nicht wie gewollt dreht. er dreht sich gar nicht.
ich hab meinen fehler nicht finden können. vielleicht kann mir ja wer helfen.
danke schonmal,
grüße, malediction.