staroski
Como é o código que lê a imagem?
natsurem
public World(String path) {
try {
BufferedImage map = ImageIO.read(getClass().getResourceAsStream(path));
int[] pixels = new int[map.getWidth() * map.getHeight()];
WIDTH = map.getWidth();
HEIGHT = map.getHeight();
tiles = new Tile[map.getWidth() * map.getHeight()];
map.getRGB(0, 0, map.getWidth(), map.getHeight(), pixels, 0, map.getWidth());
for(int xx = 0; xx<map.getWidth(); xx++) {
for(int yy = 0; yy<map.getHeight(); yy++) {
int pixelAtual = pixels[xx +(yy * map.getWidth())];
tiles[xx+(yy * WIDTH)] = new FloorTile(xx*16, yy*16, Tile.TILE_FLOOR);
if(pixelAtual == 0xFF000000) {
//Floor
tiles[xx+(yy * WIDTH)] = new FloorTile(xx*16, yy*16, Tile.TILE_FLOOR);
} else if(pixelAtual == 0xFFFFFFFF) {
//Wall
tiles[xx+(yy * WIDTH)] = new WallTile(xx*16, yy*16, Tile.TILE_WALL);
} else if(pixelAtual == 0xFF0026FF) {
//Player
Game.player.setX(xx*16);
Game.player.setY(yy*16);
}
else if(pixelAtual == 0xFFFF0000){
//Enemy
BufferedImage[] buf = new BufferedImage[3];
buf[1] = Game.spritesheet.getSprite(128, 16, 16, 16);
buf[2] = Game.spritesheet.getSprite(128+16, 16, 16, 16);
Enemy en = new Enemy(xx*16, yy*16, 16, 16, Entity.ENEMY_EN);
Game.entities.add(en);
Game.enemies.add(en);
} else if(pixelAtual == 0xFFFF6A00){
//Weapon
Game.entities.add(new Weapon(xx*16, yy*16, 16, 16, Entity.WEAPON_EN));
} else if(pixelAtual == 0xFFF4B38D){
//HealthPotion
HealthPotion potion = new HealthPotion(xx*16, yy*16, 16, 16, Entity.HEALTHPOTION_EN);
//potion.setMask(8, 8, 8, 8);
Game.entities.add(potion);
} else if(pixelAtual == 0xFFFFD800){
//Ammo
Game.entities.add(new Ammo(xx*16, yy*16, 16, 16, Entity.AMMO_EN));
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
Esse é o código utilizado para ler td que tem no mapa desde a posição do jogador, as paredes, inimigos e etc.
staroski
Ou você está passando o path errado, ou o arquivo não está no classpath de sua aplicação.