Сетка Mangos
Всем привет! Я занимаюсь изучением Mangos и не могу понять:
Mangos использует сетку для загрузки объектов в мирах клиентов, но я не могу определить: 1) Какого размера эта сетка? 2) Какой реальный размер одной ячейки в масштабе карты? 3) Размер сетки одинаков или зависит от размера карты? |
Все константы геометрии карты заданы в
src/game/GridDefines.h условно размер считается в ярдах, но учитывая (1 ярд = 0.9144 метра), можно и метрами обзывать |
С размером сетки/ячейки я разобрался. Но как Mangos переводит XYZ в ярды – непонятно.
Вот тут начинается преобразование XY персонажа в CellPair: Код:
void Map::MessageDistBroadcast(WorldObject const* obj, WorldPacket* msg, float dist) Код:
inline CellPair ComputeCellPair(float x, float y) Код:
template<class RET_TYPE, int CENTER_VAL> Код:
double x_offset = (X персонажа - половина размера ячейки) / размер ячейки; |
Это вычисляется Cell к которой относится координата - карта порезана на 64x64 или меньше Grid-ов и каждый из них порезан еще на 8x8 Cell.
Grid - минимальная ячейка хранения и загрузки геометрии Cell - минимальная ячейка обработки активности объектов в мире |
Константы в src/game/GridDefines.h заданы такие же как и в клиенте?
И ещё: в какую сторону направлен X сетки мангоса? |
Кроме максимального размера карты остальное чисто серверные заморочки.
Сетка клиента как вы нарисовали в удаленном посте. Но координаты в файлах данных используют другие ориентации осей. |
В удалённом посте я сетку не рисовал. То, что размер клетки - это "серверные заморочки" я не согласен, так как map файлы созданы на базе ADT файлов клиента.
|
Вы там оси координат рисовали (я могу смотреть удаленные посты ;) )
|
Т.е Вы хотите сказать, что направление XY сетки совпадает с направлением XY координат wow?
|
|
А, ну это я читал. Но из этой инфы непонятно почему в названиях ADT файлов XY стоит обратном порядке по отношению к .map файлам.
|
Текущее время: 05:22. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS