PackedVector2Array

Vector2的打包数组。

描述

专门设计用于保存Vector2的数组。紧密打包数据,因此它可以为大数组大小节省内存。

打包数组、类型化数组和非类型化数组之间的区别:与相同类型的类型化数组相比,打包数组通常迭代和修改速度更快(例如**PackedVector2ArrayArray[Vector2])。此外,打包数组消耗的内存更少。缺点是,打包数组不太灵活,因为它们没有提供那么多方便的方法,如Array.map()。类型化数组反过来比非类型化数组迭代和修改速度更快。

注意:打包数组总是通过引用传递的。要获得可以独立于原始数组进行修改的数组的副本,请使用duplicate()。内置属性和方法的情况是而不是。这些返回的打包数组是副本,更改它将而不是影响原始值。要更新内置属性,您需要修改返回的数组,然后再次将其分配给属性。

构造函数

方法

bool

append(value: Vector2)

void

append_array(array: PackedVector2Array)

int

bsearch(value: Vector2, before: bool = true)

void

clear()

int

count(value: Vector2) const

PackedVector2Array

duplicate()

void

fill(value: Vector2)

int

find(value: Vector2, from: int = 0) const

Vector2

get(index: int) const

bool

has(value: Vector2) const

int

insert(at_index: int, value: Vector2)

bool

is_empty() const

bool

push_back(value: Vector2)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

rfind(value: Vector2, from: int = -1) const

void

set(index: int, value: Vector2)

int

size() const

PackedVector2Array

slice(begin: int, end: int = 2147483647) const

void

sort()

PackedByteArray

to_byte_array() const

运算符


构造函数说明

PackedVector2Array PackedVector2Array() 🔗

构造一个空的PackedVector2Array


PackedVector2Array PackedVector2Array(from: PackedVector2Array)

构造一个PackedVector2Array作为给定PackedVector2Array的副本。


PackedVector2Array PackedVector2Array(from: Array)

构造一个新的PackedVector2Array。可以选择传入一个通用的Array进行转换。

注意:当使用元素初始化PackedVector2Array时,必须使用Vector2值的Array进行初始化:

var array = PackedVector2Array([Vector2(12, 34), Vector2(56, 78)])

方法说明

bool append(value: Vector2) 🔗

在数组的末尾附加一个元素(push_back()的别名)。


void append_array(array: PackedVector2Array) 🔗

在此数组的末尾附加一个PackedVector2Array


int bsearch(value: Vector2, before: bool = true) 🔗

使用二进制搜索查找现有值的索引(或保持排序顺序的插入索引,如果该值尚未出现在数组中)。可选地,可以传递before说明符。如果false,则返回的索引位于数组中该值的所有现有条目之后。

注意:在未排序的数组上调用bsearch()会导致意外行为。

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


void clear() 🔗

清除数组。这相当于使用大小为0resize()


int count(value: Vector2) const 🔗

返回元素在数组中的次数。

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


PackedVector2Array duplicate() 🔗

创建数组的副本,并返回它。


void fill(value: Vector2) 🔗

将给定值分配给数组中的所有元素。这通常可以与resize()一起使用,以创建具有给定大小和初始化元素的数组。


int find(value: Vector2, from: int = 0) const 🔗

在数组中搜索一个值,如果未找到,则返回其索引或-1。可选地,可以传递初始搜索索引。

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


Vector2 get(index: int) const 🔗

返回数组中给定index处的Vector2。这与使用[]运算符(array[index])相同。


bool has(value: Vector2) const 🔗

如果数组包含value,则返回true

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


int insert(at_index: int, value: Vector2) 🔗

在数组中的给定位置插入一个新元素。该位置必须有效,或者在数组的末尾(idx==size())。


bool is_empty() const 🔗

如果数组为空,则返回true


bool push_back(value: Vector2) 🔗

在末尾插入一个Vector2


void remove_at(index: int) 🔗

按索引从数组中删除元素。


int resize(new_size: int) 🔗

设置数组的大小。如果数组增长,则在数组末尾保留元素。如果数组缩小,则将数组截断为新大小。调用resize()一次并分配新值比逐个添加新元素更快。


void reverse() 🔗

反转数组中元素的顺序。


int rfind(value: Vector2, from: int = -1) const 🔗

以相反的顺序搜索数组。或者,可以传递开始搜索索引。如果为负,则认为开始索引相对于数组的末尾。

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


void set(index: int, value: Vector2) 🔗

更改给定索引处的Vector2


int size() const 🔗

返回数组中元素的数量。


PackedVector2Array slice(begin: int, end: int = 2147483647) const 🔗

返回PackedVector2Array的切片,从begin(包括)到end(不包括),作为新的PackedVector2Array

beginend的绝对值将被钳制到数组大小,因此end的默认值使其默认切片到数组的大小(即arr.片段(1)arr.片段(1, arr.size())的简写)。

如果beginend为负数,它们将相对于数组的末尾(即arr.片段(0,-2)arr.片段(0, arr.size()-2)的简写)。


void sort() 🔗

按升序对数组的元素进行排序。

注意:具有@S3Script.NAN元素的向量的行为与其他向量不同。因此,如果包含NaN,此方法的结果可能不准确。


PackedByteArray to_byte_array() const 🔗

返回一个PackedByteArray,每个向量都编码为字节。


运算符说明

bool operator !=(right: PackedVector2Array) 🔗

如果数组的内容不同,则返回true


PackedVector2Array operator *(right: Transform2D) 🔗

返回一个新的PackedVector2Array,该数组中的所有向量与给定的Transform2D变换矩阵进行逆变换(相乘),假设变换基是正交的(即旋转/反射很好,缩放/倾斜不是)。

数组*变换等价于transform. inverse()*数组。请参阅Transform2D.inverse()

用于通过仿射变换的逆变换(例如缩放)变换。可以使用affine_inverse()*数组代替。参见Transform2D.affine_inverse()


PackedVector2Array operator +(right: PackedVector2Array) 🔗

返回一个新的PackedVector2Array,在此数组末尾添加了right的内容。为了获得更好的性能,请考虑改用append_array()


bool operator ==(right: PackedVector2Array) 🔗

如果两个数组的内容相同,则返回true,即它们在相应的索引处都具有相等的Vector2s。


Vector2 operator [](index: int) 🔗

返回indexindex处的Vector2。负索引可用于访问从末尾开始的元素。使用数组边界外的索引将导致错误。