public void render ( ) {
		Arrays.fill(pixels, 0);
		Arrays.fill(tilepixelref, null);
		
		final int extray = 50;
		
		final int ibx = (int) basex, iby = (int) basey;
		yloop:
		for ( int y = tiles.length - 1 ; y >= 0 ; y-- ) {
			if ( basey + Config.TILE_SIZE[1] * (y + tiles[y].length) / 2 < -Config.TILE_SIZE[1] - extray ) {
				break yloop;
			} else if ( basey + Config.TILE_SIZE[1] * y / 2 >= Config.HEIGHT + extray ) {
				continue yloop;
			}
			xloop:
			for ( int x = tiles[y].length - 1 ; x >= 0 ; x-- ) {
				final int tx = ibx + Config.TILE_SIZE[0] * (x - y) / 2, ty = iby + Config.TILE_SIZE[1] * (y + x) / 2;
				if ( tx < -Config.TILE_SIZE[0] || ty < -Config.TILE_SIZE[1] - extray ) {
					break xloop;
				} else if ( tx >= Config.WIDTH || ty >= Config.HEIGHT + extray ) {
					continue xloop;
				}
				tiles[y][x].render(pixels, tilepixelref, tx, ty);
			}
		}
	}