Moin moin Forumer!
ich habe in meinem Spiel als Hintergrund einen 2D Array, durch den Images als Hintergrund gedrawt werden.
Jetzt soll - wenn der Spieler auf eine Kachel kommt - sich diese zu einer anderen umändern ( also anderes Image --> indem Fall bg2.png
Es wird in einer doppelten for_Schleife überprüft, ob der Player mit einem Objekt des 2D Arrays kolidiert. Jedoch zeigt es nur reaktion, wenn ich auf das allererste ArrayObjekt also [0][0] gehe. Dadurch werden alle Kacheln zu den anderen Kacheln gesetzt.
Ich habe es mal mit einem ArrayObjekt ausprobiert, also
funktioniert so wie ich es wollte. (ich geh auf das Feld/Kachel/Image und es ändert sich.)
Hier mal der Code wie er funktionieren soll.. (Vielleicht hab ich auch einen Leichtsinnsfehler gemacht.)
Ich hoffe ihr könnt mir Helfen :$
Vielen Dank & freundliche Grüße Oli
ich habe in meinem Spiel als Hintergrund einen 2D Array, durch den Images als Hintergrund gedrawt werden.
Jetzt soll - wenn der Spieler auf eine Kachel kommt - sich diese zu einer anderen umändern ( also anderes Image --> indem Fall bg2.png
Es wird in einer doppelten for_Schleife überprüft, ob der Player mit einem Objekt des 2D Arrays kolidiert. Jedoch zeigt es nur reaktion, wenn ich auf das allererste ArrayObjekt also [0][0] gehe. Dadurch werden alle Kacheln zu den anderen Kacheln gesetzt.
Ich habe es mal mit einem ArrayObjekt ausprobiert, also
Java:
for(int i = 0; i < WIDTH; i++){
for(int u = 0; u < HEIGHT; u++){
int absx = p.getX() - tiles[0] [0].getX();
int absy = p.getY() - tiles[0] [0].getY();
int minAbs = p.getRadius() + tiles[0] [0].getRadius();
double abs = Math.sqrt(absx * absx + absy * absy);
if(abs < minAbs){tiles[0] [0].setLookID(1);}
}
}
Hier mal der Code wie er funktionieren soll.. (Vielleicht hab ich auch einen Leichtsinnsfehler gemacht.)
Java:
for(int i = 0; i < WIDTH; i++){
for(int u = 0; u < HEIGHT; u++){
int absx = p.getX() - tiles[i] [u].getX();
int absy = p.getY() - tiles[i] [u].getY();
int minAbs = p.getRadius() + tiles[i] [u].getRadius();
double abs = Math.sqrt(absx * absx + absy * absy);
if(abs < minAbs){tiles[i] [u].setLookID(1);}
}
}
Ich hoffe ihr könnt mir Helfen :$
Vielen Dank & freundliche Grüße Oli