Agregar vista de mapa a Minicraft
En este tutorial agregamos una vista de mapa del nivel en el que nos encontramos que nos muestra donde estamos situados y donde están las escaleras y recursos.
Código a agregar a la clase LevelGen
public static void showMap(byte[] map, Player player) { int w = 128; int h = 128; BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); int[] pixels = new int[w * h]; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int i = x + y * w; if (map[i] == Tile.water.id) pixels[i] = 0x000080; if (map[i] == Tile.grass.id) pixels[i] = 0x208020; if (map[i] == Tile.rock.id) pixels[i] = 0xa0a0a0; if (map[i] == Tile.dirt.id) pixels[i] = 0x604040; if (map[i] == Tile.sand.id) pixels[i] = 0xa0a040; if (map[i] == Tile.tree.id) pixels[i] = 0x003000; if (map[i] == Tile.lava.id) pixels[i] = 0xff2020; if (map[i] == Tile.cloud.id) pixels[i] = 0xa0a0a0; if (map[i] == Tile.stairsDown.id) pixels[i] = 0xffffff; if (map[i] == Tile.stairsUp.id) pixels[i] = 0xffffff; if (map[i] == Tile.cloudCactus.id) pixels[i] = 0xff00ff; } } pixels[(player.x>>4) + (player.y>>4) * 128] = 0xffaa00; img.setRGB(0, 0, w, h, pixels, 0, w); JOptionPane.showMessageDialog(null, null, "Another", JOptionPane.YES_NO_OPTION, new ImageIcon(img.getScaledInstance(w * 4, h * 4, Image.SCALE_AREA_AVERAGING))); }
Código a agregar al método render() de la clase Game
if (input.map.clicked) { LevelGen.showMap(level.tiles, player); }
Código a agregar en la clase InputHandler
public Key map = new Key();
if (ke.getKeyCode() == KeyEvent.VK_M) map.toggle(pressed);
<< Anterior | Indice >> |