PackedVector2Array
Пакетний масив Vector2s.
Опис
Масив, спеціально розроблений для зберігання Vector2. Щільно упаковує дані, що економить пам'ять для масивів великого розміру.
Відмінності між упакованими масивами, типізованими масивами та нетипізованими масивами: Упаковані масиви, як правило, швидше перебираються та модифікуються порівняно з типізованим масивом того ж типу (наприклад, PackedVector2Array проти Array[Vector2]). Крім того, упаковані масиви споживають менше пам'яті. Недоліком є те, що упаковані масиви менш гнучкі, оскільки вони не пропонують стільки зручних методів, як Array.map(). Типізовані масиви, у свою чергу, швидше перебираються та модифікуються, ніж нетипізовані масиви.
Примітка: Упаковані масиви завжди передаються за посиланням. Щоб отримати копію масиву, яку можна модифікувати незалежно від оригінального масиву, використовуйте duplicate(). Це не стосується вбудованих властивостей та методів. У цих випадках повернутий упакований масив є копією, і його зміна не вплине на початкове значення. Щоб оновити вбудовану властивість цього типу, змініть повернутий масив, а потім знову призначте його властивості.
Примітка
Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.
Посібники
Конструктори
PackedVector2Array(from: Array) |
Методи
void |
append_array(array: PackedVector2Array) |
void |
clear() |
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Оператори
operator !=(right: PackedVector2Array) |
|
operator *(right: Transform2D) |
|
operator +(right: PackedVector2Array) |
|
operator ==(right: PackedVector2Array) |
|
operator [](index: int) |
Описи конструкторів
PackedVector2Array PackedVector2Array() 🔗
Будуємо порожній PackedVector2Array.
PackedVector2Array PackedVector2Array(from: PackedVector2Array)
Constructs a PackedVector2Array як копія даної PackedVector2Array.
PackedVector2Array PackedVector2Array(from: Array)
Створює новий PackedVector2Array. За бажанням, ви можете передати загальний Array, який буде конвертовано.
Примітка: Під час ініціалізації PackedVector2Array елементами, його необхідно ініціалізувати значеннями Array з Vector2:
var array = PackedVector2Array([Vector2(12, 34), Vector2(56, 78)])
Описи методів
Додає елемент у кінець масиву (псевдонім push_back()).
void append_array(array: PackedVector2Array) 🔗
Додаток PackedVector2Array в кінці цього масиву.
int bsearch(value: Vector2, before: bool = true) 🔗
Знаходить індекс існуючого значення (або індекс вставки, який підтримує порядок сортування, якщо значення ще не присутнє в масиві) за допомогою бінарного пошуку. За бажанням можна передати специфікатор before. Якщо false, індекс, що повертається, йде після всіх існуючих записів значення в масиві.
Примітка: Виклик bsearch() на невідсортованому масиві призводить до неочікуваної поведінки.
Примітка: Поведінка векторів з @GDScript.NAN відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
void clear() 🔗
Очищає масив. Еквівалентно використанню resize() з розміром 0.
int count(value: Vector2) const 🔗
Повертає кількість разів елемент знаходиться в масиві.
Примітка: Поведінка векторів з @GDScript.NAN відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
PackedVector2Array duplicate() 🔗
Створює копію масиву і повертає його.
Видаляє перше входження значення з масиву та повертає true. Якщо значення не існує в масиві, нічого не відбувається, і повертається false. Щоб видалити елемент за індексом, використовуйте метод remove_at.
Примітка: Вектори з елементами @GDScript.NAN поводяться інакше, ніж інші вектори. Тому результати цього методу можуть бути неточними, якщо включені NaN.
Присвоює задане значення всім елементам масиву. Зазвичай це можна використовувати разом з resize() для створення масиву заданого розміру та ініціалізованих елементів.
int find(value: Vector2, from: int = 0) const 🔗
Шукаж значення в масиві та повертає індекс або -1, якщо не знайдено. Додатково може бути переданий початковий індекс пошуку.
Примітка: Поведінка векторів з @GDScript.NAN відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
Vector2 get(index: int) const 🔗
Повертає Vector2 за заданим index у масиві. Якщо index виходить за межі або є від'ємним, цей метод завершується невдачею та повертає Vector2(0, 0).
Цей метод схожий (але не ідентичний) на оператор []. Найголовніше, що коли цей метод завершується невдачею, він не призупиняє виконання проекту, якщо його запускати з редактора.
bool has(value: Vector2) const 🔗
Повертає true, якщо масив містить value.
Примітка: Вектори з елементами @GDScript.NAN не поводять себе так, як інші вектори. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
int insert(at_index: int, value: Vector2) 🔗
Вставте новий елемент на даній позиції в масиві. Посада повинна бути дійсна, або в кінці масиву (idx == розмір()).
Повертає true, якщо масив порожній.
bool push_back(value: Vector2) 🔗
Вставте Vector2 в кінці.
Видаляє елемент з масиву за індексом.
Встановлює розмір масиву. Якщо масив збільшується, резервує елементи в кінці масиву. Якщо масив скорочується, обрізає масив до нового розміру. Виклик методу resize() один раз і призначення нових значень відбувається швидше, ніж додавання нових елементів по одному.
Повертає @GlobalScope.OK у разі успіху або одну з наступних констант Error, якщо цей метод не працює: @GlobalScope.ERR_INVALID_PARAMETER, якщо розмір від'ємний, або @GlobalScope.ERR_OUT_OF_MEMORY, якщо розподіл пам'яті не вдається. Використовуйте метод size(), щоб знайти фактичний розмір масиву після зміни розміру.
void reverse() 🔗
Змінює порядок елементів у масиві на протилежний.
int rfind(value: Vector2, from: int = -1) const 🔗
Шукає значення в масиві у зворотному порядку. Додатково може бути переданий початковий індекс пошуку. Якщо негативний, початковий індекс вважається відносно кінця масиву.
Примітка: Поведінка векторів з @GDScript.NAN відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
void set(index: int, value: Vector2) 🔗
Змінює Vector2 в даній позиції.
Повертає кількість елементів у масиві.
PackedVector2Array slice(begin: int, end: int = 2147483647) const 🔗
Повертає розріз PackedVector2Array, з start (включно) до end (виключно), як новий PackedVector2Array.
Абсолютне значення start і end буде зафіксовано до розміру масиву, тому значення за замовчуванням для end робить кінець розрізу кінцем масиву за замовчуванням (тобто arr.slice(1) є скороченим записом для arr.slice(1, arr.size())).
Якщо ж start або end є негативними, вони будуть відносно кінця масиву (тобто arr.slice(0, -2) є скороченим записом для arr.slice(0, arr.size() - 2)).
void sort() 🔗
Сортує елементи масиву в порядку зростання.
Примітка: Поведінка векторів з @GDScript.NAN відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів.
PackedByteArray to_byte_array() const 🔗
Повернення PackedByteArray з кожним вектором закодовано як байти.
Описи операторів
bool operator !=(right: PackedVector2Array) 🔗
Повертає true, якщо вміст масивів відрізняється.
PackedVector2Array operator *(right: Transform2D) 🔗
Повертає нову PackedVector2Array з усіма векторами в цьому масиві, навпаки, трансформується (multiplied) за допомогою даної Transform2D матриці перетворення, під припущенням, що основа трансформації є ортонормальним (тобто обертання / рефлекція є дрібним, масштабування / шавлія не).
array * трансформатор еквівалент transform.inverse() * array. Transform2D.inverse().
Для перетворення інверсом афінової трансформації (наприклад, з масштабуванням) transform.affine_inverse() * array може використовуватися замість. Transform2D.affine_inverse().
PackedVector2Array operator +(right: PackedVector2Array) 🔗
Повертає новий PackedVector2Array з вмістом right додано в кінці цього масиву. Для кращої роботи розглянемо використання append_array() замість.
bool operator ==(right: PackedVector2Array) 🔗
Повертає true, якщо вміст обох масивів однаково, тобто вони мають всі рівні Vector2 на відповідних показниках.
Vector2 operator [](index: int) 🔗
Повернення Vector2 в індекс index. Негативні індекси можуть використовуватися для доступу до елементів з кінця. Використання індексу з меж масиву призведе до помилки.