Hallo ihrs ich habs schon sooft probiert ne Map zu zeichnen aber irgendwie wird bei mir nichts gezeichnet könntet ihr mir verraten worans liegt?
Ich habe einmal mein MainPanel wo quasi alles zusammengefügt wird:
Dann habe ich meinen "Playground" - Meinen Spielplatz:
Hier das komische ist wenn ich Über den Konstruktor die int[][] übergebe und dort teste mit einer doppelten for schleife ob die integer werte richtig sind funktioniert das aber wenn ich das in der PaintMethode überprüfe...sind anstatt 16Integerzahlen das doppelte - somit 32?! Warum? wo ist der Unterschied.
Dann habe ich noch eine ReadImages Klasse wo alle Images geladen werden in einem Array
Konnte ich noch nicht testen...aber es tritt keine Exepction auf...
Und zu guter letzt hab ich noch die Klasse ReadMap die bald noch erweitert wird damit man Maps aus der Datei laden kann zurzeit nur ein simples Array
Bei mir wird nur der leere Frame angezeigt...(Natürlich habe ich JFrame klasse etc... wollte nur nicht posten ist ja eig überflüssig...MainPanel habe ich aufs Frame gefügt). Alles was ich sehe ist nur der Frame ohne Zeichnungen
Könnt ihr mal bitte drüber gucken ich finde den fehler nicht?! Bin noch nicht lange in der grafischen Programmierung unterwegs
Danke im vorraus 
Ich habe einmal mein MainPanel wo quasi alles zusammengefügt wird:
Java:
public class MainPanel extends JPanel
{
public MainPanel() throws IOException
{
ReadMap rm = new ReadMap();
Playground ground = new Playground(rm.getMap());
add(ground);
}
}
Dann habe ich meinen "Playground" - Meinen Spielplatz:
Java:
package Map;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JPanel;
public class Playground extends JPanel
{
int[][] map = null;
ReadImages ri = new ReadImages();
ArrayList<BufferedImage> loadImages = ri.getImages();
public Playground(int[][] map) throws IOException {
this.map = map;
}
public void paint(Graphics g) {
for(int i=0; i<map.length; i++)
{
for(int j=0; j<map[i].length; j++)
{
g.drawImage(loadImages.get(0), i*32, j*32, null);
System.out.print(map[i][j]);
}
System.out.println();
}
}
}
Hier das komische ist wenn ich Über den Konstruktor die int[][] übergebe und dort teste mit einer doppelten for schleife ob die integer werte richtig sind funktioniert das aber wenn ich das in der PaintMethode überprüfe...sind anstatt 16Integerzahlen das doppelte - somit 32?! Warum? wo ist der Unterschied.
Dann habe ich noch eine ReadImages Klasse wo alle Images geladen werden in einem Array
Java:
package Map;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
public class ReadImages {
//Bilder inizialisieren
String[] imagesPath = new String[] {"images/graslo.PNG",
"images/grasl.PNG",
"images/graslu.PNG",
"images/grasu.PNG",
"images/grasru.PNG",
"images/grasr.PNG",
"images/grasro.PNG",
"images/graso.PNG",
"images/grasm.PNG"};
BufferedImage[] images = new BufferedImage[imagesPath.length];
ArrayList<BufferedImage> loadImages = new ArrayList<BufferedImage>();
public ReadImages() throws IOException
{
for(int i=0; i<images.length; i++) {
images[i] = ImageIO.read(new File(imagesPath[i]));
loadImages.add(images[i]);
}
}
public ArrayList<BufferedImage> getImages()
{
return loadImages;
}
}
Konnte ich noch nicht testen...aber es tritt keine Exepction auf...
Und zu guter letzt hab ich noch die Klasse ReadMap die bald noch erweitert wird damit man Maps aus der Datei laden kann zurzeit nur ein simples Array
Java:
package Map;
public class ReadMap {
int[][] map = new int[][] {
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,0 },
{ 0,0,0,0 }
};
//GrasLinksOben: 0
//GrasLinks: 1
//GrasLinksUnten: 2
//GrasUnten 3
//GrasRechtsUnten 4
//GrasRechts 5
//GrasRechtsOben 6
//GrasOben 7
public int[][] getMap()
{
return map;
}
}
Bei mir wird nur der leere Frame angezeigt...(Natürlich habe ich JFrame klasse etc... wollte nur nicht posten ist ja eig überflüssig...MainPanel habe ich aufs Frame gefügt). Alles was ich sehe ist nur der Frame ohne Zeichnungen