Hallo,
ich habe bis jetzt den Anfang eines Spiels, welches so aus sieht:

Ich zeichne das Ganze so:
Durch die Zeile
kann ich neue Karten in einem txt Dokument anlegen. Die Zahl steht dabei für ein bestimmtes Objekt.
Womit ich jetzt nicht ganz klar komme ist die Kollision mit der Wand. Das hier:
realisiert ja die Kollision, allerdings wird der Spieler nun einfach wieder im Frame bei (100, 100) platziert, statt nicht mehr weiterlaufen zu können.
Ich habe jetzt schon relativ lange probiert, aber ich komme nicht drauf, wie ich das realisieren kann.
ich habe bis jetzt den Anfang eines Spiels, welches so aus sieht:

Ich zeichne das Ganze so:
Java:
private class Screen extends JLabel{
protected void paintComponent(Graphics g){
//------Einstellungen Kollisionserkennung ------//
int skalierung = 32;
int boundingSizeObjects = 15;
int zentralität = 7;
//------Ende------------------------------------//
super.paintComponent(g);
try {
for(int i = 0; i < 15; i++){
for(int j = 0; j < 15; j++){
LevelReader l = new LevelReader();
if(l.getTempArray(i, j) == 1)g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
if(l.getTempArray(i, j) == 5){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
g.drawImage(monster.getLook1(), i*skalierung, j*skalierung, null);
}
if(l.getTempArray(i, j) == 0){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
g.drawImage(wand.getLook(), i*skalierung, j*skalierung, null);
wand.setBounding(new Rectangle(i*skalierung+zentralität, j*skalierung+zentralität, boundingSizeObjects, boundingSizeObjects));
if(player.getBounding().intersects(wand.getBounding())){
player.setPosition(100, 100);
}
//g.fillRect(i*skalierung+zentralität, j*skalierung+zentralität, boundingSizeObkects, boundingSizeObkects);
}
if(l.getTempArray(i, j) == 3){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
g.drawImage(tuer.getLook(), i*skalierung, j*skalierung, null);
tuer.setBounding(new Rectangle(new Rectangle(i*skalierung, j*skalierung, boundingSizeObjects, boundingSizeObjects)));
if(tuer.getBounding().intersects(player.getBounding())){
if(player.getHasKey() == true){
player.setLevelGeschafft(true);
player.setPosition(0, 0);
player.setHasKey(false);
System.out.println("Level geschafft!");
}else {
player.setLevelGeschafft(false);
}
}
}
if(l.getTempArray(i, j) == 2){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
g.drawImage(schluessel.getLook(), i*skalierung, j*skalierung, null);
schluessel.setBounding(new Rectangle(i*skalierung, j*skalierung, boundingSizeObjects, boundingSizeObjects));
if(player.getBounding().intersects(schluessel.getBounding())){
player.setHasKey(true);
}
System.out.println(player.getHasKey());
}
if(l.getTempArray(i, j) == 6){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null); //zeichnet Boden
g.drawImage(monster.getLook2(), i*skalierung, j*skalierung, null); //zeichnet Monster
monster.setBounding(new Rectangle(i*skalierung, j*skalierung, boundingSizeObjects, boundingSizeObjects));
//erstellt Bounding //Kontrolle
//System.out.println(wand.getBounding());
//System.out.println(player.getAlive());
/*System.out.println("Bounding der Monster:");
System.out.println(m.getBounding() + "\n");
System.out.println("Bounding des Spielers:");
System.out.println(player.getBounding() + "\n");*/
}
if(l.getTempArray(i, j) == 4){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
g.drawImage(player.getLook(), player.getBounding().x, player.getBounding().y, null);
}
}
Java:
if(l.getTempArray(i, j) == 1)g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
Womit ich jetzt nicht ganz klar komme ist die Kollision mit der Wand. Das hier:
Java:
if(l.getTempArray(i, j) == 0){
g.drawImage(boden.getLook(), i*skalierung, j*skalierung, null);
g.drawImage(wand.getLook(), i*skalierung, j*skalierung, null);
wand.setBounding(new Rectangle(i*skalierung+zentralität, j*skalierung+zentralität, boundingSizeObjects, boundingSizeObjects));
if(player.getBounding().intersects(wand.getBounding())){
player.setPosition(100, 100);
}
//g.fillRect(i*skalierung+zentralität, j*skalierung+zentralität, boundingSizeObkects, boundingSizeObkects);
}
Ich habe jetzt schon relativ lange probiert, aber ich komme nicht drauf, wie ich das realisieren kann.