Vector2i
2D-вектор з цілочисельними координатами.
Опис
Двоелементна структура, яка може бути використана для представлення 2D сітчастих координат або будь-якої іншої пари цілих.
Він використовує цілі координати і тому бажано Vector2, коли потрібна точність. Зауважте, що значення обмежені 32 бітами, і на відміну від Vector2 це не можна налаштувати варіантом побудови двигуна. Використовуйте int або PackedInt64Array, якщо потрібні значення 64-бітних.
Примітка: У булевому контексті Vector2i оцінюватиме false, якщо це дорівнює Vector2i(0, 0). Вектор2i завжди оцінять 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) 🔗
Мінімальний вектор, вектор з усіма компонентами, що дорівнює 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) 🔗
Вектор блоку. Я вниз в 2D, тому це векторні точки -Y.
DOWN = Vector2i(0, 1) 🔗
Вектор внизу. Я вниз в 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)
Constructs a new 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 🔗
Повертає квадрат відстані між цим вектором і to.
Цей метод працює швидше, ніж distance_to(), тому надавайте йому перевагу, якщо потрібно порівнювати вектори або використовувати квадрат відстані у формулі.
float distance_to(to: Vector2i) const 🔗
Повертає відстань між цим вектором і до.
Повертає довжину (величину) цього вектору.
Повертає квадрат довжини (квадрат величини) цього вектора.
Цей метод працює швидше, ніж 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)) # Вивести (3, -4)
Vector2i operator %(right: int) 🔗
Отримує залишок кожного компонента Vector2i із заданим int. У цій операції використовується скорочене ділення, яке часто небажано, оскільки воно погано працює з від’ємними числами. Розгляньте можливість використання @GlobalScope.posmod() натомість, якщо ви хочете обробляти від’ємні числа.
print(Vector2i(10, -20) % 7) # Виводить (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)) # Виводить (13, 24)
Vector2i operator -(right: Vector2i) 🔗
Віднімає кожен компонент Vector2i на компоненти заданого Vector2i.
print(Vector2i(10, 20) - Vector2i(3, 4)) # Виводить (7, 16)
Vector2i operator /(right: Vector2i) 🔗
Розділяє кожен компонент Vector2i на компоненти заданого Vector2i.
print(Vector2i(10, 20) / Vector2i(2, 5)) # Виводить (5, 4)
Vector2 operator /(right: float) 🔗
Ділить кожен компонент Vector2i на заданий float. Повертає Vector2.
print(Vector2i(10, 20) / 2.9) # Виводить (5.0, 10.0)
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). Ця операція закріплює напрямок вектора, зберігаючи однакову величину.