MapCanvas
Интерактивный виджет 2D-карты, расширяющий WorldCanvas поддержкой размеров карты, слоями текстур и сетки, проекцией координат и маркерами.
Обзор
MapCanvas — высокоуровневый картографический виджет, построенный поверх WorldCanvas.
Ключевые возможности:
- Задание размеров карты в специальных координатах карты (mapSize, mapWidth, mapHeight).
- Отрисовка фоновой текстуры или сплошного цвета с выбором UV-подобласти (texture, source).
- Координатная сетка и контурные границы карты (gridVisible, gridSize, mapBorderVisible).
- Преобразование между мировыми координатами игры и координатами карты с помощью MapProjection.
- Удобное управление интерактивными маркерами через MapMarkerHandle и MapMarker.
Настройка холста карты и добавление маркеров
MapCanvas map = new MapCanvas()
.mapSize(2048, 1024)
.viewport(0, 0, 1.0f);
map.addMarker("spawn", 512, 256, "Spawn");
Связанные ссылки
- MapMarker: Базовая оболочка маркера для MapCanvas с поддержкой произвольного контента, текстовых меток, состояний выбора и подсветки.
- MapMarkerHandle: Дескриптор для удобной настройки положения, экранного размера, масштабирования от зума, опорной точки (pivot) и видимости маркера на MapCanvas.
- MapProjection: Движок линейной проекции для преобразования между внешними мировыми координатами и внутренними координатами карты MapCanvas.
- WorldCanvas: Холст бесконечного 2D/3D пространства с поддержкой панорамирования, зума камеры, преобразования координат, фоновых слоев и привязанных экранных виджетов.
API
MapCanvas()
Создает пустой MapCanvas со стандартными размерами карты 1024x512.
MapCanvas(TextureHandle)
Создает MapCanvas с заданной текстурой и размерами, полученными из текстуры.
| Параметр | Тип | Описание |
|---|---|---|
texture |
TextureHandle |
Дескриптор текстуры. |
MapCanvas(TextureHandle, float, float)
Создает MapCanvas с текстурой и явно указанными размерами ширины и высоты карты.
| Параметр | Тип | Описание |
|---|---|---|
texture |
TextureHandle |
Дескриптор текстуры. |
mapWidth |
float |
Ширина. |
mapHeight |
float |
Высота. |
MapCanvas::addMarker(String, float, float, MapMarker)
Добавляет оболочку MapMarker по координатам карты.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
mapX |
float |
Координата X карты. |
mapY |
float |
Координата Y карты. |
marker |
MapMarker |
Экземпляр MapMarker. |
Возвращает MapMarkerHandle: Созданный или найденный дескриптор MapMarkerHandle..
MapCanvas::addMarkerWidget(String, float, float, Widget)
Добавляет произвольный UI-виджет в качестве маркера по координатам карты.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
mapX |
float |
Координата X карты. |
mapY |
float |
Координата Y карты. |
widget |
Widget |
Вложенный виджет контента. |
Возвращает MapMarkerHandle: Созданный или найденный дескриптор MapMarkerHandle..
MapCanvas::addProjectedMarker(String, float, float, MapMarker)
Добавляет оболочку MapMarker по внешним мировым координатам с проекцией в пространство карты.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
worldX |
float |
Мировая координата X. |
worldY |
float |
Мировая координата Y. |
marker |
MapMarker |
Экземпляр MapMarker. |
Возвращает MapMarkerHandle: Созданный или найденный дескриптор MapMarkerHandle..
MapCanvas::addProjectedMarkerWidget(String, float, float, Widget)
Добавляет произвольный UI-виджет как маркер по внешним мировым координатам с проекцией в карту.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
worldX |
float |
Мировая координата X. |
worldY |
float |
Мировая координата Y. |
widget |
Widget |
Вложенный виджет контента. |
Возвращает MapMarkerHandle: Созданный или найденный дескриптор MapMarkerHandle..
MapCanvas::backgroundColor()
Возвращает изменяемый фоновый цвет заполнения за пределами границ карты.
Возвращает MutableColor: Экземпляр изменяемого цвета..
MapCanvas::backgroundVisible()
Возвращает true, если внешний фон холста карты отображается.
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::backgroundVisible(boolean)
Включает или отключает отрисовку внешнего фона холста карты.
| Параметр | Тип | Описание |
|---|---|---|
backgroundVisible |
boolean |
Значение параметра для gridVisible. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::borderColor()
Возвращает изменяемый цвет линии границы вокруг карты.
Возвращает MutableColor: Экземпляр изменяемого цвета..
MapCanvas::clampToMapBounds(boolean)
Ограничивает панорамирование пределами области карты.
| Параметр | Тип | Описание |
|---|---|---|
clamp |
boolean |
Флаг ограничения. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::externalToMapX(float)
Преобразует внешнюю мировую координату X в координату карты с помощью текущей проекции.
| Параметр | Тип | Описание |
|---|---|---|
worldX |
float |
Мировая координата X. |
Возвращает float: Координата или числовое значение с плавающей точкой..
MapCanvas::externalToMapY(float)
Преобразует внешнюю мировую координату Y в координату карты с помощью текущей проекции.
| Параметр | Тип | Описание |
|---|---|---|
worldY |
float |
Мировая координата Y. |
Возвращает float: Координата или числовое значение с плавающей точкой..
MapCanvas::gridColor()
Возвращает изменяемый цвет линий координатной сетки поверх карты.
Возвращает MutableColor: Экземпляр изменяемого цвета..
MapCanvas::gridSize()
Возвращает шаг между линиями сетки в единицах карты.
Возвращает float: Координата или числовое значение с плавающей точкой..
MapCanvas::gridSize(float)
Задает шаг ячеек координатной сетки поверх карты.
| Параметр | Тип | Описание |
|---|---|---|
gridSize |
float |
Шаг ячеек координатной сетки. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::gridVisible()
Возвращает true, если координатная сетка поверх карты отображается.
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::gridVisible(boolean)
Включает или отключает линии координатной сетки на карте.
| Параметр | Тип | Описание |
|---|---|---|
gridVisible |
boolean |
Значение параметра для gridVisible. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::mapBorderVisible()
Возвращает true, если контурная рамка вокруг границы карты отображается.
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::mapBorderVisible(boolean)
Включает или отключает контурную рамку по периметру карты.
| Параметр | Тип | Описание |
|---|---|---|
mapBorderVisible |
boolean |
Значение параметра для gridVisible. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::mapColor()
Возвращает изменяемый резервный цвет заполнения карты, если текстура не загружена.
Возвращает MutableColor: Экземпляр изменяемого цвета..
MapCanvas::mapHeight()
Возвращает высоту карты в единицах координат карты.
Возвращает float: Координата или числовое значение с плавающей точкой..
MapCanvas::mapSize(float, float)
Задает размеры карты в единицах координат карты.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::mapWidth()
Возвращает ширину карты в единицах координат карты.
Возвращает float: Координата или числовое значение с плавающей точкой..
MapCanvas::marker(String)
Находит дескриптор маркера по его строковому идентификатору или возвращает null, если не найден.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
Возвращает MapMarkerHandle: Созданный или найденный дескриптор MapMarkerHandle..
MapCanvas::moveMarker(String, float, float)
Перемещает существующий маркер в новые координаты карты.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
mapX |
float |
Координата X карты. |
mapY |
float |
Координата Y карты. |
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::moveProjectedMarker(String, float, float)
Перемещает существующий маркер в новые внешние мировые координаты с проекцией в пространство карты.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
worldX |
float |
Мировая координата X. |
worldY |
float |
Мировая координата Y. |
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::projection()
Возвращает активную проекцию MapProjection, используемую для перевода внешних координат.
Возвращает MapProjection: Активная проекция MapProjection..
MapCanvas::projection(MapProjection)
Устанавливает проекцию координат для перевода точек мира в пространство карты.
| Параметр | Тип | Описание |
|---|---|---|
projection |
MapProjection |
Движок проекции координат. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::removeMarker(String)
Удаляет маркер по его строковому идентификатору.
| Параметр | Тип | Описание |
|---|---|---|
id |
String |
Уникальный строковый идентификатор. |
Возвращает boolean: True, если активно, включено или успешно..
MapCanvas::source()
Возвращает нормализованный UV-прямоугольник исходной текстуры карты.
Возвращает MutableRect: Изменяемый UV-прямоугольник исходной текстуры..
MapCanvas::source(float, float, float, float)
Задает нормализованную UV-подобласть текстуры для отображения.
| Параметр | Тип | Описание |
|---|---|---|
u |
float |
Нормализованная координата текстуры U. |
v |
float |
Нормализованная координата текстуры V. |
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::texture()
Возвращает дескриптор текстуры фона карты.
Возвращает TextureHandle: Дескриптор текстуры..
MapCanvas::texture(TextureHandle)
Устанавливает дескриптор текстуры фона карты.
| Параметр | Тип | Описание |
|---|---|---|
texture |
TextureHandle |
Дескриптор текстуры. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::tint()
Возвращает изменяемый цвет тонирования текстуры карты.
Возвращает MutableColor: Экземпляр изменяемого цвета..
MapCanvas::viewport(Viewport2D)
Устанавливает модель 2D-области просмотра для панорамирования и зума.
| Параметр | Тип | Описание |
|---|---|---|
viewport |
Viewport2D |
Значение параметра для viewport. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::viewport(float, float)
Устанавливает координаты центра области просмотра с сохранением текущего зума.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::viewport(float, float, float)
Устанавливает одновременно координаты центра области просмотра и уровень зума.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
zoom |
float |
Масштаб зума. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::wheelPanStep(float)
Задает расстояние перемещения при панорамировании колесом мыши.
| Параметр | Тип | Описание |
|---|---|---|
wheelPanStep |
float |
Значение параметра для wheelPanStep. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::zoomRange(float, float)
Задает допустимые границы минимального и максимального зума.
| Параметр | Тип | Описание |
|---|---|---|
minZoom |
float |
Минимально допустимый масштаб зума. |
maxZoom |
float |
Максимально допустимый масштаб зума. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..
MapCanvas::zoomStep(float)
Задает множитель масштабирования зума при прокрутке колеса мыши.
| Параметр | Тип | Описание |
|---|---|---|
zoomStep |
float |
Значение параметра для zoomStep. |
Возвращает MapCanvas: Текущий экземпляр для цепочки вызовов..