Hi!
Ich habe ein J2ME Spiel und dazu mit C++ und SDL dann einen Editor für die Maps geschrieben.
In den Map-Dateien werden vom Editor einfach nacheinander Integer variablen geschrieben.
Folgende Funktion soll dann in dem Spiel eine solche Datei lesen:
Allerdings wird aus der Datei leider nur Müll gelesen. Die ersten beiden Werte in der Datei (welche die Breite und Höhe der Map darstellen) sind in der Test-Datei beide 16. Ausgelesen wird aber jeweils 268435456.
Woran könnte das liegen?
Ich habe ein J2ME Spiel und dazu mit C++ und SDL dann einen Editor für die Maps geschrieben.
In den Map-Dateien werden vom Editor einfach nacheinander Integer variablen geschrieben.
Folgende Funktion soll dann in dem Spiel eine solche Datei lesen:
Java:
public static void LoadLevel(int level, String file) throws IOException
{
DataInputStream s = new DataInputStream(Levels.class.getResourceAsStream(file));
int x, y;
level_width[level] = s.readInt();
level_height[level] = s.readInt();
System.out.println("Width: " + level_width[level] + " Height: " + level_height[level]);
level_start_x[level] = s.readInt();
level_start_y[level] = s.readInt();
level_goal_x[level] = s.readInt();
level_goal_y[level] = s.readInt();
level_ground[level] = new int[level_width[level] * level_height[level]];
level_lava[level] = new int[level_width[level] * level_height[level]];
for(x=0; x<level_width[level]; x++)
{
for(y=0; y<level_height[level]; y++)
{
level_ground[level][x + y * level_width[level]] = s.readInt();
System.out.println(level_ground[level][x + y * level_width[level]]);
}
}
for(x=0; x<level_width[level]; x++)
{
for(y=0; y<level_height[level]; y++)
{
level_lava[level][x + y * level_width[level]] = s.readInt();
}
}
s.close();
}
Allerdings wird aus der Datei leider nur Müll gelesen. Die ersten beiden Werte in der Datei (welche die Breite und Höhe der Map darstellen) sind in der Test-Datei beide 16. Ausgelesen wird aber jeweils 268435456.
Woran könnte das liegen?