Dimension tileSize = scenario.getTileSize();
int row = (int) (y * scenario.getNumberRows() - size.height / 2 / tileSize.height);
int column = (int) (x * scenario.getNumberColumns() - size.width / 2 / tileSize.width);
row = Math.max(row, 0);
column = Math.max(column, 0);
MapPosition p = new MapPosition(row, column);
if (!p.equals(offset)) {
offset.setFrom(p);
repaint();
}
}