В этом документе описываются системы измерений и координат внутри движка RobustToolbox. Все GamePacks должны использовать те же стандарты, что и RobustToolbox.
1 Мир
Мир — это двумерное пространство внутри карты. 2D-мир существует на плоскости X/Y, а камера находится над поверхностью, глядя на неё сверху.
В мире можно использовать направления С/Ю/З/В, но будьте осторожны, не путайте их с экранными направлениями. «Восток» — это ось +X, а «Север» — ось +Y. Помните, что камера, смотрящая на мир сверху, может вращаться, поэтому направление «Юг» в мире не всегда является «Вниз» или «Юг» на экране.
1.1 Мировые измерения
Все измерения и единицы — в метрической системе. Размеры объектов и расстояния измеряются в метрах. Для визуальной справки: 1 тайл сетки равен 1 м². Спрайты Space Station 13 разработаны так, что 1 тайл равен 32px², поэтому этот проект также будет использовать 32 текселя на метр для спрайтов.
1.2 Мировая система координат
Игровой мир использует 2D-правые координаты. Это все значения Transform и Angle, с которыми вы работаете в контенте. Это та же математика, которую вы учили в школе: единичная окружность вращается против часовой стрелки при увеличении theta. Камера по умолчанию ориентирована так, что смотрит вдоль оси -Z на плоскость X/Y, на которой находятся все сущности. Локальное направление «Вверх» (лицевая сторона плоскости X/Y) мира — это +Z. Все вращения происходят вокруг оси Z.
Вы можете нажать клавишу F3, чтобы включить отладочные наложения, которые выводят всю информацию о координатах.
1.3 Локальные координаты сущности
+Z — это локальный Вверх (от гравитации), поэтому его можно легко игнорировать в 2D. Три базисных вектора: +X (Вперёд), +Y (Влево), +Z (Вверх).
Вы можете использовать отладочную команду showpos для отображения виджета локального направления на сущностях.
1.4 Матрица вида
Матрица вида по умолчанию начинается без поворота, с масштабом 0.5 (Zoom 2) и центрирована на прикреплённой сущности клиента. Вид может вращаться вокруг оси Z, перемещаться в позицию в мире и масштабироваться для создания эффекта зума. Матрица вида концептуально является инверсией мировой матрицы камеры (если бы камера была сущностью).
При использовании этой матрицы вида по умолчанию с нулевым поворотом ось +X мира направлена вправо, а ось +Y — вверх на экране. Ось +Z выходит из экрана.
Если вы хотите управлять матрицей вида напрямую, откройте окно VV для вашего игрока, затем на клиенте откройте EyeComponent.
1.5 Матрица проекции
Это базовая ортографическая проекция, как в любой другой 2D-игре сверху. Расстояние от камеры по оси Z не меняет размер сущностей, все параллельные линии остаются параллельными, а поле обзора представляет собой прямоугольный параллелепипед.
2 Экран
Экран — это квадратная область, на которую проецируется игра при рендеринге. Это то, на что вы смотрите, своего рода окно, через которое вы можете смотреть на Мир. Некоторые игровые эффекты и интерфейс рисуются непосредственно на экране.
2.1 Система координат UI
Интерфейс использует 2D-левые координаты: начало координат в левом верхнем углу, +X идёт вправо, +Y — вниз. Вращение происходит по часовой стрелке. Это полностью аналогично любой другой библиотеке UI.
2.2 Координаты Clyde и OpenGL
Вам не нужно беспокоиться о том, как работает Clyde внутри или как Clyde работает с OpenGL. Последнее изменение 21 июня 2026 г.