Moin moin
Ich habe folgendes Problem:
In dem Code unten sollte ich eine Array von Klassen machen.
Dieses sollte ich dann mit einer foreach-Schleife durchgehen - dann die Methode " List <Class> actors= getWorld().getObjects(klasse);" anwenden (sie gibt mir Objekte statt Klassen aus)
Diese Liste soll ich wieder mit einer foreach-Schleife durchlaufen und die Ergebnisse in "travelguide.changeMap(map).addObject( (Actor) object,xLocation, yLocation);" eintragen.
Die Methode überträgt dann die Objekte in eine neues Level.
Natürlich brauchen diese Objekte Koordinaten, auf denen sie wieder gesetzt werden. Deshalb sind die beiden int-Arrays da drin.
So mein Problem:
Ich will dass weitergeben[0] mit xLocation[0] und yLocation[0] in folgendes Eingetragen wird.
travelguide.changeMap(map).addObject( (Actor) object,xLocation, yLocation);
Wenn das fertig ist, soll weitergeben[1] mit xLocation[1] und yLocation[1] in folgendes die Methode eingetragen werden.
Das Ding ist, dass ich nicht weiß wo ich die Erhöhung von x/yLocation schreiben soll.
Also das hier "for(int i = 0;i < xLocation.length ; ++i)"
An der Stelle an der es ist gibt " System.out.println(xLocation);"
das hier aus
Das Array wird also durchlaufen.
Trotzdem tauchen ALLE objekte an 842, 713 auf...
Wenn ich "for(int i = 0;i < xLocation.length ; ++i)" vor die erste foreach-Schleife schreibe, gibt es mir nur
aus.
Könnte mir da irgendwer helfen? Wär euch super dankbar!
btw: Ich arbeite mit Greenfoot. Also wundert euch über einige komische Sachen nicht.
Ich habe folgendes Problem:
In dem Code unten sollte ich eine Array von Klassen machen.
Dieses sollte ich dann mit einer foreach-Schleife durchgehen - dann die Methode " List <Class> actors= getWorld().getObjects(klasse);" anwenden (sie gibt mir Objekte statt Klassen aus)
Diese Liste soll ich wieder mit einer foreach-Schleife durchlaufen und die Ergebnisse in "travelguide.changeMap(map).addObject( (Actor) object,xLocation, yLocation);" eintragen.
Die Methode überträgt dann die Objekte in eine neues Level.
Natürlich brauchen diese Objekte Koordinaten, auf denen sie wieder gesetzt werden. Deshalb sind die beiden int-Arrays da drin.
So mein Problem:
Ich will dass weitergeben[0] mit xLocation[0] und yLocation[0] in folgendes Eingetragen wird.
travelguide.changeMap(map).addObject( (Actor) object,xLocation, yLocation);
Wenn das fertig ist, soll weitergeben[1] mit xLocation[1] und yLocation[1] in folgendes die Methode eingetragen werden.
Das Ding ist, dass ich nicht weiß wo ich die Erhöhung von x/yLocation schreiben soll.
Also das hier "for(int i = 0;i < xLocation.length ; ++i)"
An der Stelle an der es ist gibt " System.out.println(xLocation);"
das hier aus
Code:
842
200
787
842
200
787
842
200
787
842
200
787
Trotzdem tauchen ALLE objekte an 842, 713 auf...
Wenn ich "for(int i = 0;i < xLocation.length ; ++i)" vor die erste foreach-Schleife schreibe, gibt es mir nur
Code:
842
842
...usw
Könnte mir da irgendwer helfen? Wär euch super dankbar!
btw: Ich arbeite mit Greenfoot. Also wundert euch über einige komische Sachen nicht.
Java:
public void act()
{
Class[] weitergeben = {WaldUI.class,Inventar.class,Score.class};
int[] xLocation = {842,200,787};
int[] yLocation = {713,713,200};
Actor santa = getOneIntersectingObject(Santa.class);
if (santa != null)
{
Greenfoot.setWorld(travelguide.changeMap(map));
travelguide.changeMap(map).addObject(santa,xWert,yWert);
for(Class klasse: weitergeben)
{
List <Class> actors= getWorld().getObjects(klasse);
for(Object object : actors)
{
for(int i = 0;i < xLocation.length ; ++i)
{
travelguide.changeMap(map).addObject( (Actor) object,xLocation[i], yLocation[i]);
System.out.println(xLocation[i]);
}
}
}
}
}