获取画布中的行和列

时间:2019-07-18 18:38:37

标签: javascript html5-canvas game-development

我正在制作一个迷你地图,供玩家在世界上互相看到。我想添加一个扇区指示器,该指示器告诉单个玩家他们所在的扇区。世界是5000x5000矩阵。 Minimap

1 个答案:

答案 0 :(得分:0)

获取世界的比例,然后除以行和列以得到比例。然后将玩家x,y除以比例,得到扇区。如果要更改为命名系统,我制作了COLUMNSROWS数组。此方法返回一个字符串。

function getSector(x, y) {
  // The dimensions of the map
  const WIDTH = 5000, HEIGHT = 5000;
  // The sectors row and column labels
  const COLUMNS = ['1','2','3','4','5'];
  const ROWS    = ['A','B','C','D','E'];
  // Scale map to number of sectors
  const colScale = Math.floor(WIDTH / COLUMNS.length);
  const rowScale = Math.floor(HEIGHT / ROWS.length);
  // Convert xy coordinates to sectors
  const col = Math.floor(x / colScale);
  const row = Math.floor(y / rowScale);
  // Returns string of current sector
  return `${ROWS[row]}${COLUMNS[col]}`;
}


console.log(getSector(0, 0))
console.log(getSector(4999, 4999))