Hi! Seit einiger Zeit versuch ein Spielfeld aus verschieden Kacheln(z.B. Gras, Wasser,...) zu programmieren. Dabei bin ich auf folgendes Problem gestoßen: Zuersteinmal les ich aus einer Textfile in der Helper-Klasse heraus, welche Kachelart das Programm zeichen muss(z.B. 1 für Gras , 0 für nichts, 2 für Sand, etc). Da die Position der Kacheln ja statisch ist, und nie verändert wird, benutze ich hierfür 2 for-Schleifen in der Label-Klasse. Danach kommt eine Switch-Case-Verzweigung, wo ich die Kachelart auswerte.Hierfür brauch ich ja die Zahlen aus der Textfile, aber immer wenn ich das Programm starte, zeigt mir das Sysout vor der Case Verzweigung immer entweder nur eine 1, eine 2 oder eine 0 an, obwohl die Zahlen in der Textfile sich verändern.Ich bräuchte also irgendwas, was meine Zahl in der Case Verzweigung aktualisiert.Weiß irgendjemand von euch da was??
PS: (Ich bin totaler Anfänger, also kann es sein, dass ich auch einen totalen Stuss zusammengeschrieben habe
)
Hier die Utility-Klasse:
PS: (Ich bin totaler Anfänger, also kann es sein, dass ich auch einen totalen Stuss zusammengeschrieben habe
Code:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JLabel;
public class Label extends JLabel {
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
System.out.println("kachelnummer:" + var.kachelnummer);
for (int x = 0; x <= var.spielfeldbreite; x++) {
for (int y = 0; y <= var.spielfeldhöhe; y++) {
switch (var.kachelnummer) {
case 0:
g.fillRect(x * 50, y * 50, 50, 50);
break;
case 1:
g.drawImage(var.igras, x * 50, y * 50, 50, 50, null);
break;
case 2:
g.drawImage(var.iworld, x * 50, y * 50, 50, 50, null);
break;
default:System.out.println("Default!");
}
repaint();
}
}
}
}
Hier die Utility-Klasse:
Code:
import java.io.File;
import java.util.Scanner;
public class Utility {
public Utility() {
try {
var.tilesc = new Scanner(new File("Resources/GameData/Level_01.txt"));
while (var.tilesc.hasNextLine()) {
var.scanner = true;
/*
* var.spielfeldhöhe++;
*
* if (var.tilesc.hasNext()) { var.spielfeldbreite++;
*
* }
*/
System.out.println("Br:" + var.spielfeldbreite + "\tHö:" + var.spielfeldhöhe);
var.leveltiles = var.tilesc.next();
var.kachelnummer = Integer.parseInt(var.leveltiles);
System.out.println("Suche:" + var.kachelnummer);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Could not read File!");
}
}
}