Hallo,
ich bin gerade dabei ein kleines Spiel zu programmieren, da ich meine Engine aufgrund eines Wechsel zu LibGDX als Framework jetzt neu schreibe arbeiteich gerade dabei meine Welt aus eine Textdatei auszulesen und dann im Spiel umzusetzen.
Nun habe ich einen komische NumberFormatException die ich mir nicht erklären kann.
Hier mein Code zur Welt:
Und hier der Code der Exception:
ich bin gerade dabei ein kleines Spiel zu programmieren, da ich meine Engine aufgrund eines Wechsel zu LibGDX als Framework jetzt neu schreibe arbeiteich gerade dabei meine Welt aus eine Textdatei auszulesen und dann im Spiel umzusetzen.
Nun habe ich einen komische NumberFormatException die ich mir nicht erklären kann.
Hier mein Code zur Welt:
Code:
package me.gentlexd.legendofamnesia.world;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import me.gentlexd.legendofamnesia.block.Block;
import me.gentlexd.legendofamnesia.block.Material;
public class World {
private int blocksX;
private int blocksY;
private int blockSize;
private Block[][] blocks;
public World(int blockSize) {
this.blockSize = blockSize;
}
public void loadWorld(String filePath) {
try {
FileHandle file = Gdx.files.internal(filePath);
String text = file.readString();
String[] textTile = text.split("\n");
blocksX = Integer.valueOf(textTile[0].toString());
blocksY = Integer.valueOf(textTile[1].toString());
blocks = new Block[blocksY][blocksX];
for(int row = 0; row < blocksY; row++) {
String line = textTile[row + 2];
String[] tokens = line.split(" ");
for(int col = 0; col < blocksX; col++) {
int id = Integer.parseInt(tokens[col]);
blocks[row][col] = new Block(Material.values()[id], col * blockSize, row * blockSize, blockSize, blockSize);
}
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
public void render(SpriteBatch batch) {
for(int row = 0; row < blocksY; row++) {
for(int col = 0; col < blocksX; col++) {
blocks[row][col].render(batch);
}
}
}
}
Und hier der Code der Exception:
Code:
java.lang.NumberFormatException: For input string: "11
"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at me.gentlexd.legendofamnesia.world.World.loadWorld(World.java:32)
at me.gentlexd.legendofamnesia.state.Playstate.<init>(Playstate.java:20)
at me.gentlexd.legendofamnesia.state.GameStateManager.<init>(GameStateManager.java:17)
at me.gentlexd.legendofamnesia.Main.create(Main.java:32)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)