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 >> |



