Hallo liebes Forum,
ich weiß, mein Problem ist etwas komplexer, aber ich werde versuchen es so plausibel wie möglich zu erklären.
---Einleitung---
Vorweg: der Quellcode des ganzen Programms ist als Java-package hier auf mediafire zu finden (da sind ein paar bilder dabei also nicht wundern, warum das ganze so groß ist). ich werde im folgenden nur Ausschnitte daraus verwenden, wer mehr Hintergrundwissen will lädt sich das ganze runter und kann es sich dann im editor angucken.
Außerdem bin ich noch "Anfänger" was das programmieren mit Java angeht, besonders mit GUI-Elementen (Erfahrungen bereits seit mehreren Jahren in anderen Programmiersprachen und Java sein 1 1/2 Jahren an der Schule).
---Problem---
Mein Problem ist folgendes:
Ich lese in einer Initialisierungsmethode ein BufferedImage ein und male einen Teil davon in ein neues BufferedImage. Dieses speichere ich dann in einer HashMap<Entity, BufferedImage> ab. Wenn ich dann allerdings das ganze mit der get(Entity)-Methode wieder abrufen will, kommt nicht das raus was ich will (nämlich nix).
Code:
wenn ich dann das Bild malen lasse, wird nix gemalt. das Bild hat eine Größe von 200 * 400 und besteht aus 2*16 einzelbildern (erst Spieler, dann Zombie - horizontal die verschiedenen Laufstadien, vertikal die verschiedenen Richtungen)
Ich freue mich auf Rückmeldung
ich weiß, mein Problem ist etwas komplexer, aber ich werde versuchen es so plausibel wie möglich zu erklären.
---Einleitung---
Vorweg: der Quellcode des ganzen Programms ist als Java-package hier auf mediafire zu finden (da sind ein paar bilder dabei also nicht wundern, warum das ganze so groß ist). ich werde im folgenden nur Ausschnitte daraus verwenden, wer mehr Hintergrundwissen will lädt sich das ganze runter und kann es sich dann im editor angucken.
Außerdem bin ich noch "Anfänger" was das programmieren mit Java angeht, besonders mit GUI-Elementen (Erfahrungen bereits seit mehreren Jahren in anderen Programmiersprachen und Java sein 1 1/2 Jahren an der Schule).
---Problem---
Mein Problem ist folgendes:
Ich lese in einer Initialisierungsmethode ein BufferedImage ein und male einen Teil davon in ein neues BufferedImage. Dieses speichere ich dann in einer HashMap<Entity, BufferedImage> ab. Wenn ich dann allerdings das ganze mit der get(Entity)-Methode wieder abrufen will, kommt nicht das raus was ich will (nämlich nix).
Code:
Java:
//Init - Methode in dem TexturContainer
BufferedImage temp = ImageIO.read(getClass().getResource(entityFileName));
BufferedImage player = new BufferedImage(200, 200, imgType);
BufferedImage zombie = new BufferedImage(200, 200, imgType);
Graphics2D g;
g = player.createGraphics();
g.drawImage(temp,
0, 0, 200, 200,
0, 0, 200, 200,
null);
g = zombie.createGraphics();
g.drawImage(temp,
0, 0, 200, 200,
0, 200, 200, 400,
null);
entities.put(new Player(null).getKey(), player); //Player und Zombie sind Unterklassen von Entity
entities.put(new Zombie(0, 0, null, 0).getKey(), zombie); //getKey() liefert eine singleton instanz
Java:
//get(Entity key, int status)-Methode des TextureContainer s
BufferedImage img = new BufferedImage(50, 50, imgType);
Graphics2D g = img.createGraphics();
switch ((int) key.getdirection()) {
case 0:
g.drawImage(entities.get(key),
0, 0, 50, 50,
50 * status, 0, 50 * status + 50, 50, null);
break;
case 1:
g.drawImage(entities.get(key),
0, 0, 50, 50,
50 * status, 50, 50 * status + 100, 50, null);
break;
case 2:
g.drawImage(entities.get(key),
0, 0, 50, 50,
50 * status, 100, 50 * status + 150, 50, null);
break;
case 3:
g.drawImage(entities.get(key),
0, 0, 50, 50,
50 * status, 150, 50 * status + 200, 50, null);
break;
default:
System.out.println("Fehler bei der Richtung von key (TextureContainer)");
}
return img;
Ich freue mich auf Rückmeldung