Vector2i

2D-вектор з цілочисельними координатами.

Опис

Двоелементна структура, яка може бути використана для представлення 2D сітчастих координат або будь-якої іншої пари цілих.

Він використовує цілі координати і тому бажано Vector2, коли потрібна точність. Зауважте, що значення обмежені 32 бітами, і на відміну від Vector2 це не можна налаштувати варіантом побудови двигуна. Використовуйте int або PackedInt64Array, якщо потрібні значення 64-бітних.

Примітка: У булевому контексті Vector2i оцінюватиме false, якщо це дорівнює Vector2i(0, 0). Вектор2i завжди оцінять true.

Посібники

Властивості

int

x

0

int

y

0

Конструктори

Vector2i

Vector2i()

Vector2i

Vector2i(from: Vector2i)

Vector2i

Vector2i(from: Vector2)

Vector2i

Vector2i(x: int, y: int)

Методи

Vector2i

abs() const

float

aspect() const

Vector2i

clamp(min: Vector2i, max: Vector2i) const

Vector2i

clampi(min: int, max: int) const

int

distance_squared_to(to: Vector2i) const

float

distance_to(to: Vector2i) const

float

length() const

int

length_squared() const

Vector2i

max(with: Vector2i) const

int

max_axis_index() const

Vector2i

maxi(with: int) const

Vector2i

min(with: Vector2i) const

int

min_axis_index() const

Vector2i

mini(with: int) const

Vector2i

sign() const

Vector2i

snapped(step: Vector2i) const

Vector2i

snappedi(step: int) const

Оператори

bool

operator !=(right: Vector2i)

Vector2i

operator %(right: Vector2i)

Vector2i

operator %(right: int)

Vector2i

operator *(right: Vector2i)

Vector2

operator *(right: float)

Vector2i

operator *(right: int)

Vector2i

operator +(right: Vector2i)

Vector2i

operator -(right: Vector2i)

Vector2i

operator /(right: Vector2i)

Vector2

operator /(right: float)

Vector2i

operator /(right: int)

bool

operator <(right: Vector2i)

bool

operator <=(right: Vector2i)

bool

operator ==(right: Vector2i)

bool

operator >(right: Vector2i)

bool

operator >=(right: Vector2i)

int

operator [](index: int)

Vector2i

operator unary+()

Vector2i

operator unary-()


Переліки

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.


Описи властивостей

int x = 0 🔗

Векторний компонент X. Також доступний за допомогою індексної позиції [0].


int y = 0 🔗

Векторний компонент Y. Також доступний за допомогою індексної позиції [1].


Описи конструкторів

Vector2i Vector2i() 🔗

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.


Описи методів

Vector2i abs() const 🔗

Повертає новий вектор з усіма компонентами в абсолютних значеннях (тобто позитиву).


float aspect() const 🔗

Повертаємо співвідношення сторін цього вектора, співвідношення 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 🔗

Повертає відстань між цим вектором і до.


float length() const 🔗

Повертає довжину (величину) цього вектору.


int length_squared() const 🔗

Повертає квадрат довжини (квадрат величини) цього вектора.

Цей метод працює швидше, ніж length(), тому віддавайте йому перевагу, якщо вам потрібно порівняти вектори або потрібен квадрат відстані для якоїсь формули.


Vector2i max(with: Vector2i) const 🔗

Повертає вектор, кожен компонент якого є максимальним серед відповідних компонентів цього вектора та вектора with. Еквівалентно Vector2i(maxi(x, with.x), maxi(y, with.y)).


int max_axis_index() const 🔗

Повертає вісь найвищого значення вектора. 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)).


int min_axis_index() const 🔗

Повертає вісь найнижчого значення вектора. AXIS_* константи. Якщо всі компоненти рівні, цей метод повертає AXIS_Y.


Vector2i mini(with: int) const 🔗

Повертає компонентний мінімум цього вектора та with. Еквівалентно Vector2i(mini(x, with), mini(y, with)).


Vector2i sign() const 🔗

Повертає новий вектор, у якому кожен компонент приймає значення 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 двох векторів. Цей оператор корисний для сортування векторів.


int operator [](index: int) 🔗

Доступ до векторних компонентів за допомогою їх index. v[0] еквівалент v.x, і v[1] еквівалент v.y.


Vector2i operator unary+() 🔗

Повертає однакову вартість, якщо + не було. `` +`` нічого не робить, але іноді це може зробити ваш код більш читабельним.


Vector2i operator unary-() 🔗

Повертає негативне значення Vector2i. Vector2i(-v.x, -v.y). Ця операція закріплює напрямок вектора, зберігаючи однакову величину.