:github_url: hide .. _class_PackedFloat32Array: PackedFloat32Array ================== Упакованный массив 32-битных значений с плавающей точкой. .. rst-class:: classref-introduction-group Описание ---------------- Массив, специально разработанный для хранения 32-битных значений с плавающей точкой (float). Плотно упаковывает данные, поэтому экономит память для больших размеров массива. Если вам нужно плотно упаковать 64-битные значения с плавающей точкой, см. :ref:`PackedFloat64Array`. \ **Примечание:** Упакованные массивы всегда передаются по ссылке. Чтобы получить копию массива, которую можно изменять независимо от исходного массива, используйте :ref:`duplicate()`. Это *не* касается встроенных свойств и методов. В этих случаях возвращаемый упакованный массив является копией, и его изменение *не* повлияет на исходное значение. Чтобы обновить встроенное свойство этого типа, измените возвращаемый массив, а затем снова назначьте его свойству. .. note:: Существуют заметные различия при использовании данного API с C#. Подробнее см. :ref:`doc_c_sharp_differences`. .. rst-class:: classref-reftable-group Конструкторы ------------------------ .. table:: :widths: auto +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`PackedFloat32Array`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`PackedFloat32Array`\ (\ from\: :ref:`PackedFloat32Array`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`PackedFloat32Array`\ (\ from\: :ref:`Array`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Методы ------------ .. table:: :widths: auto +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`append`\ (\ value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`append_array`\ (\ array\: :ref:`PackedFloat32Array`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`bsearch`\ (\ value\: :ref:`float`, before\: :ref:`bool` = true\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear`\ (\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`count`\ (\ value\: :ref:`float`\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`duplicate`\ (\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`erase`\ (\ value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`fill`\ (\ value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`find`\ (\ value\: :ref:`float`, from\: :ref:`int` = 0\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get`\ (\ index\: :ref:`int`\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has`\ (\ value\: :ref:`float`\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`insert`\ (\ at_index\: :ref:`int`, value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_empty`\ (\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`push_back`\ (\ value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_at`\ (\ index\: :ref:`int`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`resize`\ (\ new_size\: :ref:`int`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`reverse`\ (\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`rfind`\ (\ value\: :ref:`float`, from\: :ref:`int` = -1\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set`\ (\ index\: :ref:`int`, value\: :ref:`float`\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`size`\ (\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`slice`\ (\ begin\: :ref:`int`, end\: :ref:`int` = 2147483647\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`sort`\ (\ ) | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedByteArray` | :ref:`to_byte_array`\ (\ ) |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Операторы ------------------ .. table:: :widths: auto +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator !=`\ (\ right\: :ref:`PackedFloat32Array`\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat32Array` | :ref:`operator +`\ (\ right\: :ref:`PackedFloat32Array`\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator ==`\ (\ right\: :ref:`PackedFloat32Array`\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`operator []`\ (\ index\: :ref:`int`\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания конструктора ------------------------------------------ .. _class_PackedFloat32Array_constructor_PackedFloat32Array: .. rst-class:: classref-constructor :ref:`PackedFloat32Array` **PackedFloat32Array**\ (\ ) :ref:`🔗` Создает пустой **PackedFloat32Array**. .. rst-class:: classref-item-separator ---- .. rst-class:: classref-constructor :ref:`PackedFloat32Array` **PackedFloat32Array**\ (\ from\: :ref:`PackedFloat32Array`\ ) Создает **PackedFloat32Array** как копию заданного **PackedFloat32Array**. .. rst-class:: classref-item-separator ---- .. rst-class:: classref-constructor :ref:`PackedFloat32Array` **PackedFloat32Array**\ (\ from\: :ref:`Array`\ ) Создает новый **PackedFloat32Array**. При желании можно передать общий :ref:`Array`, который будет преобразован. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания метода ------------------------------ .. _class_PackedFloat32Array_method_append: .. rst-class:: classref-method :ref:`bool` **append**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Добавляет элемент в конец массива (псевдоним :ref:`push_back()`). .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_append_array: .. rst-class:: classref-method |void| **append_array**\ (\ array\: :ref:`PackedFloat32Array`\ ) :ref:`🔗` Добавляет **PackedFloat32Array** в конец этого массива. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_bsearch: .. rst-class:: classref-method :ref:`int` **bsearch**\ (\ value\: :ref:`float`, before\: :ref:`bool` = true\ ) |const| :ref:`🔗` Находит индекс существующего значения (или индекс вставки, который поддерживает порядок сортировки, если значение еще не присутствует в массиве) с помощью бинарного поиска. При желании можно передать спецификатор ``before``. Если ``false``, возвращаемый индекс следует после всех существующих записей значения в массиве. \ **Примечание:** Вызов :ref:`bsearch()` для несортированного массива приводит к неожиданному поведению. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_clear: .. rst-class:: classref-method |void| **clear**\ (\ ) :ref:`🔗` Очищает массив. Это эквивалентно использованию :ref:`resize()` с размером ``0``. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_count: .. rst-class:: classref-method :ref:`int` **count**\ (\ value\: :ref:`float`\ ) |const| :ref:`🔗` Возвращает количество раз, когда элемент находится в массиве. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_duplicate: .. rst-class:: classref-method :ref:`PackedFloat32Array` **duplicate**\ (\ ) |const| :ref:`🔗` Создает копию массива и возвращает ее. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_erase: .. rst-class:: classref-method :ref:`bool` **erase**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Удаляет первое вхождение значения из массива и возвращает ``true``. Если значение не существует в массиве, ничего не происходит и возвращается ``false``. Чтобы удалить элемент по индексу, используйте :ref:`remove_at()`. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_fill: .. rst-class:: classref-method |void| **fill**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Присваивает заданное значение всем элементам массива. Обычно это можно использовать вместе с :ref:`resize()` для создания массива с заданным размером и инициализированными элементами. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_find: .. rst-class:: classref-method :ref:`int` **find**\ (\ value\: :ref:`float`, from\: :ref:`int` = 0\ ) |const| :ref:`🔗` Ищет в массиве значение и возвращает его индекс или ``-1``, если не найдено. При желании можно передать начальный индекс поиска. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_get: .. rst-class:: classref-method :ref:`float` **get**\ (\ index\: :ref:`int`\ ) |const| :ref:`🔗` Returns the 32-bit float at the given ``index`` in the array. If ``index`` is out-of-bounds or negative, this method fails and returns ``0.0``. This method is similar (but not identical) to the ``[]`` operator. Most notably, when this method fails, it doesn't pause project execution if run from the editor. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_has: .. rst-class:: classref-method :ref:`bool` **has**\ (\ value\: :ref:`float`\ ) |const| :ref:`🔗` Возвращает ``true``, если массив содержит ``value``. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_insert: .. rst-class:: classref-method :ref:`int` **insert**\ (\ at_index\: :ref:`int`, value\: :ref:`float`\ ) :ref:`🔗` Вставляет новый элемент в указанную позицию в массиве. Позиция должна быть допустимой или в конце массива (``idx == size()``). .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_is_empty: .. rst-class:: classref-method :ref:`bool` **is_empty**\ (\ ) |const| :ref:`🔗` Возвращает ``true`` если массив пустой. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_push_back: .. rst-class:: classref-method :ref:`bool` **push_back**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Добавляет элемент в конец массива. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_remove_at: .. rst-class:: classref-method |void| **remove_at**\ (\ index\: :ref:`int`\ ) :ref:`🔗` Удаляет элемент из массива по индексу. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_resize: .. rst-class:: classref-method :ref:`int` **resize**\ (\ new_size\: :ref:`int`\ ) :ref:`🔗` Устанавливает размер массива. Если массив увеличивается, резервирует элементы в конце массива. Если массив уменьшается, усекает массив до нового размера. Вызов :ref:`resize()` один раз и назначение новых значений быстрее, чем добавление новых элементов по одному. Возвращает :ref:`@GlobalScope.OK` в случае успеха или одну из следующих констант :ref:`Error`, если этот метод не удался: :ref:`@GlobalScope.ERR_INVALID_PARAMETER`, если размер отрицательный, или :ref:`@GlobalScope.ERR_OUT_OF_MEMORY`, если выделение памяти не удается. Используйте :ref:`size()`, чтобы узнать фактический размер массива после изменения размера. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_reverse: .. rst-class:: classref-method |void| **reverse**\ (\ ) :ref:`🔗` Инвертирует порядок элементов в массиве. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_rfind: .. rst-class:: classref-method :ref:`int` **rfind**\ (\ value\: :ref:`float`, from\: :ref:`int` = -1\ ) |const| :ref:`🔗` Выполняет поиск в массиве в обратном порядке. При желании можно передать начальный индекс поиска. Если он отрицательный, начальный индекс считается относительно конца массива. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_set: .. rst-class:: classref-method |void| **set**\ (\ index\: :ref:`int`, value\: :ref:`float`\ ) :ref:`🔗` Изменяет число с плавающей точкой по указанному индексу. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_size: .. rst-class:: classref-method :ref:`int` **size**\ (\ ) |const| :ref:`🔗` Возвращает число элементов в массиве. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_slice: .. rst-class:: classref-method :ref:`PackedFloat32Array` **slice**\ (\ begin\: :ref:`int`, end\: :ref:`int` = 2147483647\ ) |const| :ref:`🔗` Возвращает срез **PackedFloat32Array** от ``begin`` (включительно) до ``end`` (исключительно) как новый **PackedFloat32Array**. Абсолютное значение ``begin`` и ``end`` будет ограничено размером массива, поэтому значение по умолчанию для ``end`` делает его срезом по размеру массива по умолчанию (т. е. ``arr.slice(1)`` является сокращением для ``arr.slice(1, arr.size())``). Если ``begin`` или ``end`` отрицательны, они будут относительными к концу массива (т. е. ``arr.slice(0, -2)`` является сокращением для ``arr.slice(0, arr.size() - 2)``). .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_sort: .. rst-class:: classref-method |void| **sort**\ (\ ) :ref:`🔗` Сортирует элементы массива в порядке возрастания. \ **Примечание:** :ref:`@GDScript.NAN` ведет себя не так, как другие числа. Поэтому результаты этого метода могут быть неточными, если включены NaN. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_method_to_byte_array: .. rst-class:: classref-method :ref:`PackedByteArray` **to_byte_array**\ (\ ) |const| :ref:`🔗` Возвращает копию данных, преобразованных в :ref:`PackedByteArray`, где каждый элемент закодирован как 4 байта. Размер нового массива будет ``float32_array.size() * 4``. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания оператора ------------------------------------ .. _class_PackedFloat32Array_operator_neq_PackedFloat32Array: .. rst-class:: classref-operator :ref:`bool` **operator !=**\ (\ right\: :ref:`PackedFloat32Array`\ ) :ref:`🔗` Возвращает ``true``, если содержимое массивов различается. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_operator_sum_PackedFloat32Array: .. rst-class:: classref-operator :ref:`PackedFloat32Array` **operator +**\ (\ right\: :ref:`PackedFloat32Array`\ ) :ref:`🔗` Возвращает новый **PackedFloat32Array** с содержимым ``right``, добавленным в конец этого массива. Для лучшей производительности рассмотрите возможность использования :ref:`append_array()`. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_operator_eq_PackedFloat32Array: .. rst-class:: classref-operator :ref:`bool` **operator ==**\ (\ right\: :ref:`PackedFloat32Array`\ ) :ref:`🔗` Возвращает ``true``, если содержимое обоих массивов одинаково, т.е. все они имеют одинаковые числа с плавающей точкой в соответствующих индексах. .. rst-class:: classref-item-separator ---- .. _class_PackedFloat32Array_operator_idx_int: .. rst-class:: classref-operator :ref:`float` **operator []**\ (\ index\: :ref:`int`\ ) :ref:`🔗` Возвращает :ref:`float` по индексу ``index``. Отрицательные индексы можно использовать для доступа к элементам, начиная с конца. Использование индекса за пределами массива приведет к ошибке. Обратите внимание, что тип :ref:`float` является 64-битным, в отличие от значений, хранящихся в массиве. .. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)` .. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)` .. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)` .. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)` .. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)` .. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)` .. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`