Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Vector2i
Двумерный вектор, использующий целочисленные координаты.
Описание
Структура из 2 элементов, которая может использоваться для представления координат 2D-сетки или любой другой пары целых чисел.
Она использует целочисленные координаты и поэтому предпочтительнее Vector2, когда требуется наивысшая точность. Обратите внимание, что значения ограничены 32 битами, и в отличие от Vector2 это нельзя настроить с помощью параметра сборки движка. Используйте int или PackedInt64Array, если требуются 64-битные значения.
Примечание: В булевом контексте Vector2i будет оцениваться как false, если он равен Vector2i(0, 0). В противном случае Vector2i всегда будет оцениваться как true.
Обучающие материалы
Свойства
|
||
|
Конструкторы
Vector2i() |
|
Методы
abs() const |
|
aspect() const |
|
distance_squared_to(to: Vector2i) const |
|
distance_to(to: Vector2i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
Операторы
operator !=(right: Vector2i) |
|
operator %(right: Vector2i) |
|
operator %(right: int) |
|
operator *(right: Vector2i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector2i) |
|
operator -(right: Vector2i) |
|
operator /(right: Vector2i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector2i) |
|
operator <=(right: Vector2i) |
|
operator ==(right: Vector2i) |
|
operator >(right: Vector2i) |
|
operator >=(right: Vector2i) |
|
operator [](index: int) |
|
Перечисления
enum Axis: 🔗
Axis AXIS_X = 0
Перечисленное значение для оси X. Возвращается max_axis_index() и min_axis_index().
Axis AXIS_Y = 1
Перечисленное значение для оси Y. Возвращается max_axis_index() и min_axis_index().
Константы
ZERO = Vector2i(0, 0) 🔗
Нулевой вектор — вектор у которого все координаты равны 0.
ONE = Vector2i(1, 1) 🔗
Вектор-единица — вектор у которого все координаты равны 1.
MIN = Vector2i(-2147483648, -2147483648) 🔗
Вектор Min, вектор, все компоненты которого равны INT32_MIN. Может использоваться как отрицательный целочисленный эквивалент Vector2.INF.
MAX = Vector2i(2147483647, 2147483647) 🔗
Вектор Max, вектор, все компоненты которого равны INT32_MAX. Может использоваться как целочисленный эквивалент Vector2.INF.
LEFT = Vector2i(-1, 0) 🔗
Левый единичный вектор. Представляет направление влево.
RIGHT = Vector2i(1, 0) 🔗
Правый единичный вектор. Представляет направление вправо.
UP = Vector2i(0, -1) 🔗
Up единичный вектор вверх. Y направлен вниз в 2D, поэтому этот вектор указывает на -Y.
DOWN = Vector2i(0, 1) 🔗
Down - единичный вектор вниз. Y направлен вниз в 2D, поэтому этот вектор указывает на +Y.
Описания свойств
X компонент вектора. Может быть доступен через индекс [0].
Y компонент вектора. Может быть доступен через индекс [1].
Описания конструктора
Создает инициализированный по умолчанию Vector2i со всеми компонентами, установленными в 0.
Vector2i Vector2i(from: Vector2i)
Создает Vector2i как копию заданного Vector2i.
Vector2i Vector2i(from: Vector2)
Создает новый Vector2i из заданного Vector2 путем усечения дробных частей компонентов (округление в сторону нуля). Для другого поведения рассмотрите возможность передачи результата Vector2.ceil(), Vector2.floor() или Vector2.round() этому конструктору.
Vector2i Vector2i(x: int, y: int)
Создает новый Vector2i из заданных x и y.
Описания метода
Возвращает новый вектор в котором все компоненты будут абсолютными значениями (т.е положительными).
Возвращает соотношение сторон данного вектора, отношение x к y.
Vector2i clamp(min: Vector2i, max: Vector2i) const 🔗
Возвращает новый вектор со всеми компонентами, зажатыми между компонентами min и max, путем запуска @GlobalScope.clamp() для каждого компонента.
Vector2i clampi(min: int, max: int) const 🔗
Возвращает новый вектор со всеми компонентами, зажатыми между min и max, путем запуска @GlobalScope.clamp() для каждого компонента.
int distance_squared_to(to: Vector2i) const 🔗
Returns the squared Euclidean distance between this vector and to.
This method runs faster than distance_to(), so prefer it if you need to compare vectors or need the squared distance for some formula.
float distance_to(to: Vector2i) const 🔗
Returns the Euclidean distance between this vector and to.
Возвращает длину (величину) данного вектора.
Возвращает длину данного вектора в квадрате.
Этот метод выполняется быстрее, чем length(), поэтому он предпочтительнее если вам нужно сравнить векторы или нужно расстояние в квадрате для какой-либо формулы.
Vector2i max(with: Vector2i) const 🔗
Возвращает покомпонентный максимум этого и with, что эквивалентно Vector2i(maxi(x, with.x), maxi(y, with.y)).
Возвращает ось наибольшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает AXIS_X.
Vector2i maxi(with: int) const 🔗
Возвращает покомпонентный максимум этого и with, что эквивалентно Vector2i(maxi(x, with), maxi(y, with)).
Vector2i min(with: Vector2i) const 🔗
Возвращает покомпонентный минимум этого и with, эквивалентный Vector2i(mini(x, with.x), mini(y, with.y)).
Возвращает ось наименьшего значения вектора. См. константы AXIS_*. Если все компоненты равны, этот метод возвращает AXIS_Y.
Vector2i mini(with: int) const 🔗
Возвращает покомпонентный минимум этого и with, эквивалентно Vector2i(mini(x, with), mini(y, with)).
Возвращает новый вектор, в котором каждый компонент установлен на 1, если он положительный, -1, если он отрицательный, и 0, если он равен нулю. Результат идентичен вызову @GlobalScope.sign() для каждого компонента.
Vector2i snapped(step: Vector2i) const 🔗
Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному соответствующего компонента в step.
Vector2i snappedi(step: int) const 🔗
Возвращает новый вектор, в котором каждый компонент привязан к ближайшему кратному step.
Описания оператора
bool operator !=(right: Vector2i) 🔗
Возвращает true, если векторы не равны.
Vector2i operator %(right: Vector2i) 🔗
Получает остаток каждого компонента Vector2i с компонентами заданного Vector2i. Эта операция использует усеченное деление, которое часто нежелательно, поскольку оно плохо работает с отрицательными числами. Рассмотрите возможность использования @GlobalScope.posmod() вместо этого, если вы хотите обрабатывать отрицательные числа.
print(Vector2i(10, -20) % Vector2i(7, 8)) # Prints (3, -4)
Vector2i operator %(right: int) 🔗
Получает остаток каждого компонента Vector2i с заданным int. Эта операция использует усеченное деление, которое часто нежелательно, поскольку оно плохо работает с отрицательными числами. Рассмотрите возможность использования @GlobalScope.posmod() вместо этого, если вы хотите обрабатывать отрицательные числа.
print(Vector2i(10, -20) % 7) # Prints (3, -6)
Vector2i operator *(right: Vector2i) 🔗
Умножает каждый компонент Vector2i на компоненты заданного Vector2i.
print(Vector2i(10, 20) * Vector2i(3, 4)) # Выводит (30, 80)
Vector2 operator *(right: float) 🔗
Умножает каждый компонент Vector2i на заданный float. Возвращает Vector2.
print(Vector2i(10, 15) * 0.9) # Выводит (9.0, 13.5)
Vector2i operator *(right: int) 🔗
Умножает каждый компонент Vector2i на заданное int.
Vector2i operator +(right: Vector2i) 🔗
Добавляет каждый компонент Vector2i к компонентам указанного Vector2i.
print(Vector2i(10, 20) + Vector2i(3, 4)) # Prints (13, 24)
Vector2i operator -(right: Vector2i) 🔗
Вычитает каждый компонент Vector2i из компонентов заданного Vector2i.
print(Vector2i(10, 20) - Vector2i(3, 4)) # Prints (7, 16)
Vector2i operator /(right: Vector2i) 🔗
Делит каждый компонент Vector2i на компоненты заданного Vector2i.
print(Vector2i(10, 20) / Vector2i(2, 5)) # Prints (5, 4)
Vector2 operator /(right: float) 🔗
Делит каждый компонент Vector2i на заданное значение float. Возвращает Vector2.
print(Vector2i(1, 2) / 2.5) # Выводит (0.4, 0.8)
Vector2i operator /(right: int) 🔗
Делит каждый компонент Vector2i на заданное int.
bool operator <(right: Vector2i) 🔗
Сравнивает два вектора Vector2i, сначала проверяя, меньше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов. Этот оператор полезен для сортировки векторов.
bool operator <=(right: Vector2i) 🔗
Сравнивает два вектора Vector2i, сначала проверяя, меньше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов. Этот оператор полезен для сортировки векторов.
bool operator ==(right: Vector2i) 🔗
Возвращает true если векторы равны.
bool operator >(right: Vector2i) 🔗
Сравнивает два вектора Vector2i, сначала проверяя, больше ли значение X левого вектора, чем значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов. Этот оператор полезен для сортировки векторов.
bool operator >=(right: Vector2i) 🔗
Сравнивает два вектора Vector2i, сначала проверяя, больше ли значение X левого вектора или равно ли ему значение X вектора right. Если значения X в точности равны, то он повторяет эту проверку со значениями Y двух векторов. Этот оператор полезен для сортировки векторов.
Доступ к компонентам вектора осуществляется с помощью их index. v[0] эквивалентно v.x, а v[1] эквивалентно v.y.
Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.
Возвращает отрицательное значение Vector2i. Это то же самое, что и запись Vector2i(-v.x, -v.y). Эта операция меняет направление вектора, сохраняя ту же величину.