Ich hab leider wieder ein Problem:
Ich habe eine (zwei) For-Schleifen zum belegen von Werten.
Dafür habe ich ein Array (alleFelder) von Feld-Objekten (welche x und y werte speichern) mit 400 Objkten (Je 20 Stk dieselbe x-Koordinate (200x200 Pixel Quarat in welchem 400 Felder sind)) (null-basierend)
Die x-Koordinaten sind belegt und jetzt folgende Schleife zum belegen der y-Koordinaten:
Java:
//Belegung der y-Werte://Wiederhole in diesem Fall 20 Malfor(int i =0; i < eineReihe*panel.getPixelAbstand(); i = i + panel.getPixelAbstand()){//Gehe jedes Feld der Liste durch und prüfe,for(Feld akt : alleFelder){//auf x == i,//wenn Übereinstimmung: setY(c)//Erhöhe c um 20int c =0;if(akt.getY()==0&& akt.getX()== i){
akt.setY(c);System.out.println(akt.getX()+"--"+ akt.getY());
c = c + panel.getPixelAbstand();}}}
- getPixelAbstand() liefert einen int zurück welcher die Seitenlänge eines Feldes angibt (Bei einem 400x400 Pixel-Spielfeld -> pixelAbstand = 20 -> 20 Feld-Objekte in einer Reihe)
- eineReihe ist die Variable welche den Wert für die Felder in einer Reihe speichert (20)
Nun das Problem:
Die y-Werte werden nicht belegt!
Bei der System.out.println - Ausgabe erhalte ich nur die x-Werte. y bleibt 0
c ist 0 und du wunderst dich wirklich warum y 0 ist?
danach erhöhst du c, aber das bringt niemanden was, bei jedem nächsten Schleifendurchlauf wird c ja wieder mit 0 deklariert,
so ein Code wird doch nicht nach deinen Wünschen ignoriert,
wahrscheinlich reicht es, die Zeile
int c = 0;
VOR die for-Schleife zu verschieben
(edit: vor die innere oder gar die äußere der beiden for-Schleifen, ausprobieren
oder besser noch genauer drüber nachdenken, was passieren soll)
Hier die Lösung des Problems:
Ich hatte nicht bedacht das c wieder 0 gesetzt wird sobald ich in die innere Schleife gehe!
Java:
for(int i =0; i < eineReihe*panel.getPixelAbstand(); i = i + panel.getPixelAbstand()){//Gehe jedes Feld der Liste durch und prüfe,int c =0;for(Feld akt : alleFelder){//auf x == i,//wenn Übereinstimmung: setY(c)//Erhöhe c um 20if(c >380){
c =0;}if(akt.getY()==0&& akt.getX()== i){
akt.setY(c);System.out.println(akt.getX()+"--"+ akt.getY());
c = c + panel.getPixelAbstand();}}}