SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Элементы карты (к примеру камень с урока – s) › Ответ в теме: Элементы карты (к примеру камень с урока – s)
Ок, с нумерацией вроде ясно. Пусть A – это двумерный массив всех вершин. Тогда каждая вершина задаётся двумя числами – номером строки i и столбца j (например, вершина A[4][2] расположена на пересечении четвёртой строки и второго столбца). Я так понимаю, нужно по индексам вершины A[i][j] узнать её координаты в массиве строк String TileMap[HEIGHT_MAP]? Тогда надо сначала узнать координаты верхнего левого угла массива вершин (то есть вершины A[1][1]) в массиве строк TileMap. Координаты верхнего левого угла определяются, когда ты рисуешь карту, то есть их можно найти вручную и потом в программе создать для них специальные переменные. Пусть эти координаты равны x и y. Другими словами, вершине A[1][1] соответствует элемент карты TileMap[x][y]. Пусть на карте TileMap соседние вершины разделены t рёбрами по горизонтали и s рёбрами по вертикали. Тогда координаты вершины A[i][j] на карте TileMap можно вычислить как
1 |
TileMap[x + (s + 1) * (i - 1)][y + (t + 1) * (j - 1)] |
Должно быть так, если ничего не напутал.