Java loading and saving system flawed
I cant seam to resolve the problem. I'm trying to make a loading and
saving system but I came across a weird problem. When I first load it up
and generate the level, it saves fine, but when I save it for a second
time, it saves all 0 (nothing). Please help me.
Here is my level class:
package level;
import java.io.*;
import java.util.*;
import javax.swing.JOptionPane;
import Window.Game;
public class level {
public level() {
}
public static void loadlevel() {
try {
Game.scanner = new Scanner(new File("res//leveldata.txt"));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "WARNING:Error loading
level: "
+ e.getMessage() + " Hit ok to create the file",
"ERROR!",
JOptionPane.ERROR_MESSAGE);
level.generatelevel();
}
try {
Game.levelwidth = Game.scanner.nextInt();
Game.levelheight = Game.scanner.nextInt();
while (Game.scanner.hasNext()) {
int data = Game.scanner.nextInt();
System.out.println(data);
for (int i = 0; i < Game.levelpixelstotal; i++) {
Game.leveldata[i] = data;
}
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "WARNING:Error loading
level: "
+ e.getMessage() + " Hit ok to create the level",
"ERROR",
JOptionPane.ERROR_MESSAGE);
level.generatelevel();
}
}
public static void savelevel() {
try {
Game.formatter = new Formatter("res//leveldata.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Game.formatter.format("%d %d\n", Game.levelwidth, Game.levelheight);
for (int i = 0; i < Game.levelpixelstotal; i++) {
System.out.println(Game.leveldata[i]);
Game.formatter.format(" %d\n", Game.leveldata[i]);
}
Game.formatter.close();
}
public static void generatelevel() {
Game.levelheight = 160;
Game.levelwidth = 240;
for (int i = 0; i < Game.levelpixelstotal; i++) {
if (i < (Game.levelwidth * (Game.levelheight / 2))) {
Game.leveldata[i] = Game.Dirtid;
}
if ((i > ((Game.levelwidth * (Game.levelheight) / 2)))
&& (i < (Game.levelwidth * (Game.levelheight) / 2)
+ Game.levelwidth)) {
Game.leveldata[i] = Game.Grassid;
}
}
try {
Game.stop();
} catch (IOException e) {
e.printStackTrace();
}
}
}
No comments:
Post a Comment