Advertisement
Nojus_Globys

map

Feb 23rd, 2023
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.22 KB | Software | 0 0
  1.  
  2. int [][] map = { // 20 x 20
  3.     { -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1},
  4.     {154, 155, 156,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1},
  5.     {163, 164, 165, 166,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1},
  6.     { -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 153, 154, 155, 156,  -1,  -1,  -1, 153, 154, 155, 156,  -1},
  7.     { -1,  -1, 153, 154, 155, 156,  -1,  -1, 162, 163, 164, 165, 166,  -1,  -1, 162, 163, 164, 165, 166},
  8.     { -1,  -1, 162, 163, 164, 165, 166,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1},
  9.     { -1,   8,  -1,  -1,  -1,   8,  -1,  -1,  -1,  -1,  -1, 153, 154, 155, 156,  -1,  -1,  -1,   8,  -1},
  10.     { -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 162, 163, 164, 165, 166,  -1,  -1,  -1,  -1},
  11.     { -1,  -1, 135,  -1,  -1,  -1, 135,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1},
  12.     {101,  65,  65,  37,  38,  39,  40,  41,  42,  46,  46,  -1,  -1,  -1,  -1, 136,  -1,  -1,  33,  -1},
  13.     {110,  -1,  -1,  -1,  47,  48,  49,  50,  -1,  55,  55,  -1,  46,  37,  38,  39,  40,  41,  42, 101},
  14.     {110,  -1,  -1,  -1,  56,  57,  58,  59,  -1,  64,  55,  46,  55,  -1,  47,  48,  49,  50,  -1, 110},
  15.     {110,  72,  73,  -1,  -1,  66,  67,  78,  79,  -1,  64,  55,  64,  -1,  56,  57,  58,  59,  -1, 101},
  16.     {110,  81,  82,  83,  84,  85,  86,  87,  -1,  -1,  -1,  64,  -1,  -1,  -1,  66,  67,  -1,  -1, 110},
  17.     {110,  -1,  91,  92,  93,  94,  95,  96,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 101},
  18.     {110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 101},
  19.     {110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 101},
  20.     {110, 121, 122, 123,  -1,  -1,  -1,  -1,  -1, 121, 122, 123,  -1,  -1,  -1,  -1, 121, 122, 123, 101},
  21.     {110, 130, 131, 132,  -1,  -1,  -1,  -1,  -1, 130, 131, 132,  -1,  -1,  -1,  -1, 130, 131, 132, 101},
  22.     {110, 139, 140, 141, 144, 146,  -1,  -1,  -1, 139, 140, 141,  -1,  -1,  -1, 146, 139, 140, 141, 110}
  23. };
  24.  
  25. PImage
  26.     tiles,
  27.     tile; // ismanusvaikas.lt/data/tileset2.png - 288 x 608
  28.    
  29. int
  30.     mapSize = 20,
  31.     tileSize = 32,
  32.     tilesWidth = 9, // columns
  33.     tilesHeight = 19, // rows // actually not used
  34.     tilesX = tileSize * (mapSize + 2),
  35.     chosen = -1;
  36.  
  37. boolean showTile = false;
  38.    
  39. void setup () {
  40.     size(31 * 32, 20 * 32);
  41.     noFill();
  42.     stroke(255, 50);
  43.     textSize(tileSize);
  44.     tiles = loadImage("data/tileset2.png"); // 9 x 19
  45. }
  46.  
  47. void grid () { // gal ir galima daryti su linijomis, bet tinka ir taip (nežinau, kas paprasčiau)
  48.     for (int y = 0; y < mapSize; ++y) {
  49.         for (int x = 0; x < mapSize; ++x)
  50.             square(x * tileSize, y * tileSize, tileSize);
  51.     }
  52. }
  53.  
  54. void _map () {
  55.     for (int y = 0; y < mapSize; ++y) {
  56.         for (int x = 0; x < mapSize; ++x){
  57.             int temp = map[y][x]; // atrodo pakankamai keistai, tačiau taip ir yra –
  58.             // aš pirmiausia susirandu didelę ląstelę, ir tuomet joje ieškau konkrečios
  59.             if (!(temp == -1)){
  60.                 tile = tiles.get(temp % tilesWidth * tileSize, temp / tilesWidth * tileSize, tileSize, tileSize);
  61.                 image(tile, x * tileSize, y * tileSize);
  62.             }
  63.         }
  64.     }
  65. }
  66.  
  67. void keyPressed () {
  68.     if (key == TAB)
  69.         showTile = !showTile;
  70. }
  71.  
  72. void paint () {
  73.     if (mouseX > tilesX && mouseX < tilesX + tiles.width && mousePressed) {
  74.         chosen = ((mouseX - tilesX) / tileSize) + (mouseY / tileSize * tilesWidth);
  75.         showTile = true;
  76.     }
  77.    
  78.     if (showTile) {
  79.         tile = tiles.get(chosen % tilesWidth * tileSize, chosen / tilesWidth * tileSize, tileSize, tileSize);
  80.         image(tile, mouseX - tileSize/2, mouseY - tileSize/2);
  81.     }
  82.    
  83.     if (mouseX > 0 && mouseX < mapSize * tileSize && mouseY > 0 && mouseY < height && mousePressed)
  84.             map[mouseY/tileSize][mouseX/tileSize] = chosen;
  85. }
  86.  
  87. void draw () {
  88.     background(85, 180, 250);
  89.     image(tiles, tilesX, 0, tiles.width, tiles.height); // available tiles
  90.     grid();
  91.     _map();
  92.     paint();
  93.     text(chosen, width * 0.95, height * 0.95);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement