Hey.
Irgendwie funktioniert die Kollision nur bei der ersten Kiste ich weiss aber nicht warum.
Java Kisten Kollision Fehler - YouTube
So erstelle ich die Kisten:
Ich frage dann so ab:
Und bei der Spielebewegung frage ich dann ab ob z.B. chestUp true ist und wenn ja darf der Spieler nicht nach oben gehen.
Das geht auch aber nur bei der ersten Kiste. Die Spieler Rechtecke setze ich so:
Irgendwie funktioniert die Kollision nur bei der ersten Kiste ich weiss aber nicht warum.
Java Kisten Kollision Fehler - YouTube
So erstelle ich die Kisten:
Java:
chest1 = new Chest(20*32,16*32,Menu.trank);
chest2 = new Chest(15*32,10*32,Menu.gegengift);
chestList.add(chest1);
chestList.add(chest2);
// Dann Rechtecke für die Kollisionabfrage, die Kistengrafik ist 32x32
chestRect = new Rectangle[2];
chestRect[0] = new Rectangle(chest1.x,chest1.y,32,32); // First Map
chestRect[1] = new Rectangle(chest2.x,chest2.y,32,32); // First Map
Ich frage dann so ab:
Java:
for(int x = 0 ;x < chestRect.length; x++){
if(chestRect[x].intersects(playerUp))
value.chestUp = true;
else
value.chestUp = false;
if(chestRect[x].intersects(playerLeft))
value.chestLeft = true;
else
value.chestLeft = false;
if(chestRect[x].intersects(playerRight))
value.chestRight = true;
else
value.chestRight = false;
if(chestRect[x].intersects(playerDown))
value.chestDown = true;
else
value.chestDown = false;
}
Und bei der Spielebewegung frage ich dann ab ob z.B. chestUp true ist und wenn ja darf der Spieler nicht nach oben gehen.
Das geht auch aber nur bei der ersten Kiste. Die Spieler Rechtecke setze ich so:
Java:
// Rechtecke aktualisieren
playerUp.setBounds(xenor.x+8,xenor.y+16,32,32);
playerLeft.setBounds(xenor.x-4,xenor.y+30,32,32);
playerRight.setBounds(xenor.x+20,xenor.y+30,32,32);
playerDown.setBounds(xenor.x+8,xenor.y+40,32,32);
Zuletzt bearbeitet von einem Moderator: