Hallo zusammen,
ich habe einen Level-Editor programmiert, dieser funktioniert schon sehr gut.
Dabei habe ich mir gedacht, das ich die Hitboxen für eine Map auch automatisch mit zeichnen könnte.
Das heißt der Level-Editor zeichnet nicht nur die grafischen Quadrate die die Map darstellen sollen, sondern gleich mit jedem Quadrat eine passende Hitbox.
Das mit den Hitboxen funktioniert auch schon einwandfrei.
Probleme habe ich beim abfragen der Hitboxen.
Wenn ich z.B. 20 Quadrate mit Hitboxen habe, dann reagiert meine Kollisionsabfrage auf nur zwei Hitboxen. Auf die anderen Hitboxen reagiert die Abfrage nicht.
Die abfrage passiert genau bei den letzten zwei Hitboxen ganz am Ende der Map.
Hier mal der Code, indem die Quadrate und Hitboxen gezeichnet werden:
public void render(Graphics g) throws SlickException {
int i;
int j =0;
Image bild = new Image("Block.png");
for(i<20; i++){
for(j=0; j<20; j++){
if(array**[j] == 'h'){ //Himmel
g.setBackground(Color.pink);
g.fillRect(25*j, 25*i, 25, 25);
}
else if (array**[j] == 'g'){ //Gras
g.setColor(Color.green);
g.fillRect(25*j, 25*i, 25, 25);
}
else if (array**[j] == 'w'){ //Wasser
g.setColor(Color.blue);
g.fillRect(25*j, 25*i, 25, 25);
}
else if (array**[j] == 'e'){ //Erde
g.setColor(Color.red);
g.drawImage(bild, 25*j, 25*i);
hitbox = new Rectangle(25*j, 25*i, 25, 25);
g.draw(hitbox);
}
}
}
}
In der anderen Klasse frage ich in der updade-Methode die Kollision mit dem Spieler und der Hitbox des Quadrates ab:
if(hitbox.intersects(editor.getHitbox())){
System.out.println("Kollision erkannt!");
}
Wie kann ich das machen, das er alle Hitboxen abfragt und nicht nur zwei?
Ich habe ewig lange herumprobiert und im Netz nachgelesen, doch leider nichts gefunden.
MfG