BITTE NACH UNTEN SCROLLEN, DA WIRD DAS PROBLEM GENAUER GESCHILDERT
Hallo!
Ich hab schnell mal ein paar Methoden gebastelt, alles in eine Klasse gestopft und schneller voranzukommen.
Jetzt, wo alles gangen ist, wollte ich dass dann alles schön übersichtlich machen und in Klassen aufteilen. Zumindest eine Berechne Klasse und eine klasse die darstellt.
Seitdem habe ich aber das Problem, dass ich irgendwo nen fehler hab!
DAS PROBLEM IST: Ich komme nie in den CrashZweig rein, obwohl es schon gegangen ist.
hier ein codestück
wenn wem was auffällt wäre ich sehr dankbar! Ich sitz schon ne Std. da und komm net drauf
mfg[/b]
Hallo!
Ich hab schnell mal ein paar Methoden gebastelt, alles in eine Klasse gestopft und schneller voranzukommen.
Jetzt, wo alles gangen ist, wollte ich dass dann alles schön übersichtlich machen und in Klassen aufteilen. Zumindest eine Berechne Klasse und eine klasse die darstellt.
Seitdem habe ich aber das Problem, dass ich irgendwo nen fehler hab!
DAS PROBLEM IST: Ich komme nie in den CrashZweig rein, obwohl es schon gegangen ist.
hier ein codestück
Code:
/**
* die Linie über und unter dem steuerbaren Auto wird definiert (wird für die Kollisionsprüfung gebraucht)
*/
public Line2D OLinie(double xWert, double yWert, double steigung)
{Line2D.Double lineO = new Line2D.Double(xWert,yWert,xWert+Math.cos(steigung)*50,yWert+Math.sin(steigung)*50);
return lineO;
}
public Line2D ULinie(double xWert, double yWert, double steigung)
{Line2D.Double lineU = new Line2D.Double(xWert+Math.sin(-steigung)*20,yWert+Math.cos(-steigung)*20,xWert+Math.sin(-steigung)*20+Math.cos(steigung)*50,yWert+Math.cos(-steigung)*20+Math.sin(steigung)*50);
return lineU;
}
/**
* Es werden 6 Rectangle Objekte (die Autos) werden erzeugt um später den Verkehr darzustellen)
*/
public void RectangleSet()
{
Rectangle Auto1 = new Rectangle(((int)(-verkehr1+(autozaehler*5))),180, 50,20);
Rectangle Auto2 = new Rectangle(((int)(-verkehr2+(autozaehler*5))),180, 50,20);
Rectangle Auto3 = new Rectangle(((int)(-verkehr3+(autozaehler*5))),180, 50,20);
Rectangle Auto4 = new Rectangle(((int)(-verkehr4+(autozaehler*5))),180, 50,20);
Rectangle Auto5 = new Rectangle(((int)(-verkehr5+(autozaehler*5))),180, 50,20);
Rectangle Auto6 = new Rectangle(((int)(-verkehr6+(autozaehler*5))),180, 50,20);
Rectangle Auto7 = new Rectangle(((int)(-verkehr7+(autozaehler*5))),180, 50,20);
Rectangle Auto8 = new Rectangle(((int)(-verkehr8+(autozaehler*5))),180, 50,20);
Rectangle Auto9 = new Rectangle(((int)(-verkehr9+(autozaehler*5))),180, 50,20);
Rectangle Auto10 = new Rectangle(((int)(-verkehr10+(autozaehler*5))),180, 50,20);
Rectangle Auto11 = new Rectangle(((int)(-verkehr11+(autozaehler*5))),180, 50,20);
Rectangle Auto12 = new Rectangle(((int)(-verkehr12+(autozaehler*5))),180, 50,20);
Rectangle Auto13 = new Rectangle(((int)(-verkehr13+(autozaehler*5))),180, 50,20);
Autos.setRecs( Auto1, Auto2, Auto3, Auto4, Auto5, Auto6, Auto7, Auto8, Auto9, Auto10, Auto11, Auto12, Auto13);
}
public void SpielAlg()
{RectangleSet();
if (CrashOrNot(Auto1, Auto2, Auto3, Auto4, Auto5, Auto6, Auto7, Auto8, Auto9, Auto10, Auto11, Auto12, Auto13, OLinie(xWert,yWert,steigung),ULinie(xWert,yWert,steigung))) //Abfrage ob eine Kollision vorliegt oder nicht
{highScore();
highS=true;
if (newGame)
{autozaehler=0;
zaehler=0;
newGame=false;
score=0;
}
} else {highS=false; if (newGame) {zaehler=0; autozaehler=0; newGame=false; } else {//steuerbar=
zaehler; //verkehr=autozaehler; } } if (zaehler>900) if (zaehler >950) {zaehler=0; autozaehler=0;
run=true; setStartwerte(); } else {zaehler=0; autozaehler=0; // Sie kommen ins nächste Level }
else
{//Berechnen der Werte für den Eckpunkt des steuerbaren Autos und die Steigung
xWert = zaehler; //Das Auto bewegt sich
if(zaehler<515) //Bevor die Kurve gefahren wird
{yWert = -0.53018867924528301886792452830189*xWert + 505;
steigung=(-0.53018867924528301886792452830189);
}
else
{if (zaehler>700) //nachdem die Kurve gefahren wurde
{yWert= 180;
steigung=0;
}
else //wenn die Kurve gefahren wird
{yWert=0.001463*(xWert*xWert)-2.034*xWert+887.199;
steigung=2*0.001464*(xWert)-2.034;
}
}
Rectangle SAuto = new Rectangle((int)xWert,(int)yWert,50,20); //Das Auto wird erzeugt
Autos.setAuto(SAuto);
Autos.setxWert(xWert);
Autos.setyWert(yWert);
Autos.setSteigung(steigung);
}
}
/**
* es wird hier geprüft ob eine Kollision vorliegt oder nicht!
*/
public boolean CrashOrNot(Rectangle Auto1, Rectangle Auto2, Rectangle Auto3, Rectangle Auto4, Rectangle Auto5, Rectangle Auto6,
Rectangle Auto7, Rectangle Auto8, Rectangle Auto9, Rectangle Auto10, Rectangle Auto11, Rectangle Auto12, Rectangle Auto13, Line2D lineO, Line2D lineU)
{
if (lineO.intersects(Auto1) || lineU.intersects(Auto1))
crash = true;
else if (lineO.intersects(Auto2) || lineU.intersects(Auto2))
crash = true;
else if (lineO.intersects(Auto3) || lineU.intersects(Auto3))
crash = true;
else if(lineO.intersects(Auto4) || lineU.intersects(Auto4))
crash = true;
else if(lineO.intersects(Auto5) || lineU.intersects(Auto5))
crash = true;
else if(lineO.intersects(Auto6) || lineU.intersects(Auto6))
crash = true;
else if (lineO.intersects(Auto7) || lineU.intersects(Auto7))
crash = true;
else if (lineO.intersects(Auto8) || lineU.intersects(Auto8))
crash = true;
else if (lineO.intersects(Auto9) || lineU.intersects(Auto9))
crash = true;
else if(lineO.intersects(Auto10) || lineU.intersects(Auto10))
crash = true;
else if(lineO.intersects(Auto11) || lineU.intersects(Auto11))
crash = true;
else if(lineO.intersects(Auto12) || lineU.intersects(Auto12))
crash = true;
else if (lineO.intersects(Auto13) || lineU.intersects(Auto13))
crash = true;
else
crash=false;
return crash;
}
wenn wem was auffällt wäre ich sehr dankbar! Ich sitz schon ne Std. da und komm net drauf
mfg[/b]