Вывод видимой области тайловой карты

  1. _x = Math.round((-camera.x - SCR_WIDTH / 2f) / TILE_WIDTH) - 1;
  2. _y = Math.round((-camera.y - SCR_HEIGHT / 2f) / TILE_HEIGHT) - 1;
  3. _w = Math.round((-camera.x + SCR_WIDTH / 2f) / TILE_WIDTH) + 1;
  4. _h = Math.round((-camera.y + SCR_HEIGHT / 2f) / TILE_HEIGHT) + 1;
  5.  
  6. if (_x < 0) _x = 0;
  7. if (_y < 0) _y = 0;
  8. if (_w > mapWidth) _w = mapWidth;
  9. if (_h > mapHeight) _h = mapHeight;
  10.  
  11. for (int j = _y; j < _h; j++) {
  12.     for (int i = _x; i < _w; i++) {
  13.         // drawImage(imgs[layer[j][i]], i * TILE_WIDTH, j * TILE_HEIGHT)
  14.     }
  15. }
layer[mapHeight][mapWidth] - массив индексов тайлов
imgs[] - массив изображений
camera - объект, хранящий смещение карты

Реклама

Мы в соцсетях

tw tg yt gt