Hallo liebe Java-Freunde,
Ich möchte sozusagen ein kleines Super Mario programmieren, mein Test hat sogar einwandfrei funktioniert:
Doch nun wo ich die farbigen Quadrate mit Texturen ersetzen wollte, ergab sich das Problem, dass pro Frame nur ca. zwei Quadrate mit Texturen angezeigt werden, aber immer an unterschiedlichen Stellen. Also eigentlich ist vom Code her nahezu alles richtig, nur die Quadrate mit den Texturen bleiben einfach nicht sichtbar sondern verschwinden, wenn die nächsten Quadrate erscheinen. Ich hoffe ihr versteht was mein Problem ist
Hier noch der Code von der Frame-Klasse, in der sich alles wichtige abspielt:
Ich möchte sozusagen ein kleines Super Mario programmieren, mein Test hat sogar einwandfrei funktioniert:

Doch nun wo ich die farbigen Quadrate mit Texturen ersetzen wollte, ergab sich das Problem, dass pro Frame nur ca. zwei Quadrate mit Texturen angezeigt werden, aber immer an unterschiedlichen Stellen. Also eigentlich ist vom Code her nahezu alles richtig, nur die Quadrate mit den Texturen bleiben einfach nicht sichtbar sondern verschwinden, wenn die nächsten Quadrate erscheinen. Ich hoffe ihr versteht was mein Problem ist

Hier noch der Code von der Frame-Klasse, in der sich alles wichtige abspielt:
Java:
package SMv1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FrameSMv1 extends JFrame {
int frameWidth = 1200, frameHeight = 700, xAnzahl=0;
public String name;
int u =25*15;
JLabel label1[] = new JLabel[u];
char[][] field = new char[25][15];
ImageIcon dirtI = new ImageIcon("dirt.png");
ImageIcon grasI = new ImageIcon("gras.png");
ImageIcon skyI = new ImageIcon("sky.png");
public FrameSMv1(String name) {
super("Test");
this.name = name;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(frameWidth, frameHeight);
getContentPane().setBackground(Color.WHITE);
setVisible(true);
setResizable(false);
setLocationRelativeTo(null);
}
@SuppressWarnings("resource")
public void readFile() {
File file1 = new File(name);
try {
Scanner scann1 = new Scanner(file1);
int y = 0;
char[] tempChar = null;
for (int i = 0; i < 14; i++) {
if(scann1.hasNext()){
String tempString = scann1.next();
tempChar = tempString.toCharArray();
}
for (int x = 0; x < 24; x++) {
field[x][y] = tempChar[x];
}
y++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void Screen() {
for (int z = 0; z < u; z++) {
label1[z]= new JLabel();
add(label1[z]);
for (int x = 0; x < 24; x++) {
for (int y = 0; y < 14; y++) {
if (field[x][y] == 'd') {
label1[z].setIcon(dirtI);
label1[z].setBounds(x * 50, y * 50, 50, 50);
}
if (field[x][y] == 'g') {
label1[z].setIcon(grasI);
label1[z].setBounds(x * 50, y * 50, 50, 50);
}
if (field[x][y] == 's') {
label1[z].setIcon(skyI);
label1[z].setBounds(x * 50, y * 50, 50, 50);
}
}
}
}
}
}