0
I got a class like this:
public class TileRender {
private Map mapa;
private TileMap tileMap;
private Tile[] tiles;
private List<ObjectPointMap> objMap;
public TileRender(TileMap tileMap, Map mapa) {
this.mapa = mapa;
this.tileMap = tileMap;
this.objMap = new ArrayList<>();
this.carregarObj();
}
public void carregarObj() {
for(int i=0; i<tileMap.getHeight(); i ++) {
for(int j=0; j<tileMap.getWidth(); j++) {
objMap.add(new ObjectPointMap(j * 16, i * 16));
}
}
this.carregarTiles();
}
public void carregarTiles() {
tiles = new Tile[objMap.size()];
for(int i=0; i<objMap.size(); i++) {
BufferedImage image = mapa.getTile((int) (objMap.get(i).getY() / 16), (int) (objMap.get(i).getX() / 16));
tiles[i] = new Tile(image);
tiles[i].setPosition(objMap.get(i).getX(), objMap.get(i).getY());
}
}
public void draw(Graphics2D g2d) {
for(int i=0; i<tiles.length; i++) {
//BufferedImage image = mapa.getTile((int) (objMap.get(i).getY() / 16), (int) (objMap.get(i).getX() / 16));
g2d.drawImage(tiles[i].getImage(), tiles[i].x, tiles[i].y, null);
}
}
}
The problem is that when calling the method carregarTiles()
both in the constructor and in the load method:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
When inserted in the draw() method, it works.
Call it where? Add the stack of errors and where are you calling this method.
– user28595