hallo und zwar habe ich ein Problem bei dem ich nicht weiter komme und bitte um hilfe ???:L
ich habe die Klasse Auto:
sowie die Klasse Welt:
kann mir jemand helfen und erklären weshalb mein safetycar die methode fahrtrichtung_aendern macht aber mein normaler wagen nicht?
ich habe die Klasse Auto:
Java:
public class Auto extends Rechteck{
double geschwindigkeit;
int beschleunigung;
double bremsung;
boolean Unfall;
boolean SafetyCar;
double SafetyCarZielx;
double SafetyCarZiely;
boolean SafetyCar_unterwegs;
public Auto (){//(int x, int y, double g, String typ ){
positionSetzen(30,30);// x= 100; y = 100
SafetyCar=false;
String typ="pkw";
if ( typ =="pkw"){
breiteSetzen(20);
hoeheSetzen(20);
farbeSetzen("rot");
}
else
if ( typ=="lkw"){
breiteSetzen(20);
hoeheSetzen(20);
farbeSetzen("blau");
}
bremsung = 0.1;
geschwindigkeit = 60;
}
public void fahrtrichtung_aendern(){
vertikalBewegen(-2);
if(y<10){
positionSetzen(x,10);
vertikalBewegen(0);
}
}
public void fahren(){
if(this.SafetyCar==true) {
//System.out.println(a.x + " " + a.y + " " + this.x + " " +this.y);
if( ((this.x-SafetyCarZielx) *(this.x-SafetyCarZielx) + (this.y- SafetyCarZiely) * (this.y- SafetyCarZiely) )<900) {
// if ((this.x == SafetyCarZielx ) && (this.y == SafetyCarZiely ))
//System.out. println ("sollte stoppen");
this.geschwindigkeit=0;
this.horizontalBewegen(0);
this.vertikalBewegen(0);
SafetyCar_unterwegs=true;
} }
if(SafetyCar_unterwegs==true){
if(this.SafetyCar == true){
this.farbeSetzen("blau");
this.fahrtrichtung_aendern();
}
}
if(SafetyCar_unterwegs==true && this.SafetyCar==false && this.geschwindigkeit==0)
{ this.fahrtrichtung_aendern();
}
if(this.SafetyCar==false && this.geschwindigkeit==0 && SafetyCar_unterwegs==true ){
this.farbeSetzen("gelb");
if((y <=Fenster.HEIGHT-100) && (x <=55)){ //wenn das Rechteck am Ende des Bildschirms angelangt ist
vertikalBewegen(-3);}
else
if ((y >Fenster.HEIGHT-100)&&(x <Fenster.WIDTH-50))
horizontalBewegen(-3);
else
if((y >30) && (x >=Fenster.WIDTH-50 ))
vertikalBewegen(3);
else
if (( y<=100) && (x> 50))
horizontalBewegen(3);
}
if( geschwindigkeit>=60){
if((y <=Fenster.HEIGHT-100) && (x <=55)){ //wenn das Rechteck am Ende des Bildschirms angelangt ist
vertikalBewegen(3);}
else
if ((y >Fenster.HEIGHT-100)&&(x <Fenster.WIDTH-50))
horizontalBewegen(3);
else
if((y >30) && (x >=Fenster.WIDTH-50 ))
vertikalBewegen(-3);
else
if (( y<=100) && (x> 50))
horizontalBewegen(-3);
}
if( geschwindigkeit>=30 && geschwindigkeit<60){
if((y <Fenster.HEIGHT-90) && (x <=55)){ //wenn das Rechteck am Ende des Bildschirms angelangt ist
vertikalBewegen(2);}
else
if ((y >=Fenster.HEIGHT-90)&&(x <=Fenster.WIDTH-60))
horizontalBewegen(2);
else
if((y >30) && (x <=Fenster.WIDTH-50 ))
vertikalBewegen(-2);
else
if (( y<=100) && (x> 50))
horizontalBewegen(-2);
}
if( geschwindigkeit>=10 && geschwindigkeit<30){
if((y <Fenster.HEIGHT-100) && (x <50)){ //wenn das Rechteck am Ende des Bildschirms angelangt ist
vertikalBewegen(1);}
else
if ((y >Fenster.HEIGHT-100)&&(x <Fenster.WIDTH-50))
horizontalBewegen(1);
else
if((y >30) && (x ==Fenster.WIDTH-50 ))
vertikalBewegen(-1);
else
if (( y<=100) && (x> 50))
horizontalBewegen(-1);
}
}
public void Unfall(){
Unfall=true;
geschwindigkeit=0;
horizontalBewegen(0);
vertikalBewegen(0);}
public double getX(){
return this.x;
}
public double getY(){
return this.y;
}
public void safetycar( ){
Auto a= new Auto();//(0, 30, 60, "pkw");
a.SafetyCar = true;
a.farbeSetzen("gelb");
a.SafetyCarZielx = this.x;
a.SafetyCarZiely = this.y;
if( a.SafetyCar==true&&((a.x-SafetyCarZielx) *(a.x-SafetyCarZielx) + (a.y- SafetyCarZiely) * (a.y- SafetyCarZiely) )>900) {
a.fahren();}
else if(( a.SafetyCar==true&&((a.x-SafetyCarZielx) *(a.x-SafetyCarZielx) + (a.y- SafetyCarZiely) * (a.y- SafetyCarZiely) )<900)) {
a.geschwindigkeit=0;
a.vertikalBewegen(0);
a.horizontalBewegen(0);
}
System.out.println(SafetyCar_unterwegs);
}
}
Java:
import java.util.Random;
public class Welt
{
int rundenzahl;
boolean ja;
public Welt()
{
Auto [ ] a= new Auto[1];
Fenster f;
Strasse s;
rundenzahl=10;
/*Markierung m1;
Markierung m2;*/
s = new Strasse();
/*m1 = new Markierung(390,150);
m2 = new Markierung(390,350);*/
int i=0;
a[i] = new Auto();
a[i].geschwindigkeit=60;
Random r = new Random();
double unfallort;
unfallort = 750 * Math.random();
unfallort = Math.round (unfallort*1)/1.0;
f = new Fenster() ;
// a[i].fahren();
if(a[i].y ==501){
ja = true;
}
System.out.println(unfallort);
while(true){
if(a[i].x >unfallort && a[i].y == 501){
System.out.println(a[i].x + " " +a[i].y );
a[i].Unfall();
a[i].safetycar();}
if(a[i].geschwindigkeit==0){
break;
}
//a[i].unfall() ; a[i]=null;
}
}
}