Vector2
用于二维数学的向量。
描述
2 元素结构,可用于表示 2D 空间中的坐标或其他任何一对数字值。
注意:在布尔语境中,如果 Vector2 等于 Vector2(0, 0)
,它将评估为 false
。否则,Vector2 将总是评估为 true
。
教程
属性
| ||
|
方法
abs ( ) | |
angle ( ) | |
angle_to_point ( Vector2 to ) | |
aspect ( ) | |
ceil ( ) | |
cubic_interpolate ( Vector2 b, Vector2 pre_a, Vector2 post_b, float weight ) | |
direction_to ( Vector2 b ) | |
distance_squared_to ( Vector2 to ) | |
distance_to ( Vector2 to ) | |
floor ( ) | |
is_equal_approx ( Vector2 v ) | |
is_normalized ( ) | |
length ( ) | |
length_squared ( ) | |
limit_length ( float length=1.0 ) | |
linear_interpolate ( Vector2 to, float weight ) | |
move_toward ( Vector2 to, float delta ) | |
normalized ( ) | |
round ( ) | |
sign ( ) | |
tangent ( ) |
常量
AXIS_X = 0 —- X 轴的枚举值。
AXIS_Y = 1 —- Y 轴的枚举值。
ZERO = Vector2( 0, 0 ) —- 零向量,所有分量都设置为
0
的向量。ONE = Vector2( 1, 1 ) —- 一向量,所有分量都设置为
1
的向量。INF = Vector2( inf, inf ) —- 无穷大向量,所有分量都设置为 @GDScript.INF 的向量。
LEFT = Vector2( -1, 0 ) —- 左单位向量。代表左的方向。
RIGHT = Vector2( 1, 0 ) —- 右单位向量。代表右的方向。
UP = Vector2( 0, -1 ) —- 上单位向量。Y 在 2D 中是向下的,所以这个向量指向 -Y。
DOWN = Vector2( 0, 1 ) —- 下单位向量。在 2D 中 Y 是向下的,所以这个向量指向 +Y。
属性说明
- float x
Default |
|
向量的 X 分量。也可以通过使用索引位置 [0]
访问。
- float y
Default |
|
向量的 Y 分量。也可以通过使用索引位置 [1]
访问。
方法说明
从给定的 x
和 y
构建新的 Vector2。
- Vector2 abs ( )
返回一个新的向量,其所有分量都是绝对值,即正值。
- float angle ( )
返回这个向量相对于正X轴的角度,或(1, 0)
向量,单位为弧度。
例如,Vector2.RIGHT.angle()
将返回0,Vector2.DOWN.angle()
将返回PI / 2
(四分之一转,或90度),Vector2(1, -1).angle()
将返回-PI / 4
(负八分之一转,或-45度)。
相当于以向量的y 和 x为参数调用@GDScript.atan2时的结果。atan2(y, x)
。
返回与给定向量的角度,单位为弧度。
返回连接两点的直线与X轴的夹角,单位为弧度。
- float aspect ( )
返回从由给定法线定义的平面上“反弹”的向量。
- Vector2 ceil ( )
返回所有分量四舍五入后的向量,朝正无穷大。
Deprecated, please use limit_length instead.
Returns the vector with a maximum length by limiting its length to length
.
返回此向量与with
的叉积。
用pre_a
和post_b
作为句柄,在这个向量和b
之间进行三次插值,并在weight
位置返回结果。weight
的范围是0.0到1.0,表示插值的量。
返回从这个向量指向b
的归一化向量。这相当于使用(b-a).normalized()
。
返回这个向量与b
之间的平方距离。
这个方法比distance_to运行得更快,所以如果你需要比较向量或需要一些公式的平方距离,则更喜欢它。
返回此向量与 to
之间的距离。
返回此向量与with
的点积。这可以用来比较两个向量之间的角度。例如,这可以用来确定一个敌人是否正朝向玩家。
对于直角90度,点积将是0
,对于窄于90度的角度,点积大于0,对于宽于90度的角度,点积小于0。
当使用归一化单位向量时,当向量朝向相反方向时,结果总是在-1.0
(180度角)和1.0
(0度角)之间,当向量对齐。
注意:a.dot(b)
等同于b.dot(a)
。
- Vector2 floor ( )
返回所有分量四舍五入后的向量,朝负无穷大。
通过对每个分量运行@GDScript.is_equal_approx,如果这个向量和v
近似相等,返回true
。
- bool is_normalized ( )
如果向量被归一化,返回true
,否则返回false
。
- float length ( )
返回这个向量的长度,即大小。
- float length_squared ( )
返回这个向量的平方长度,即平方大小。
这个方法比length运行得更快,所以如果你需要比较向量或需要一些公式的平方距离时,更喜欢用它。
通过限制其长度为length
,返回具有最大长度的向量。
返回这个向量与to
之间线性插值的结果,插值量为weight
。weight
的范围是0.0到1.0,表示插值的数量。
向to
移动固定的delta
量。
- Vector2 normalized ( )
返回缩放为单位长度的向量。相当于v/v.length()
。
返回一个由这个向量分量的@GDScript.fposmod和mod
组成的向量。
返回一个由这个向量的modv
分量和@GDScript.fposmod分量组成的向量。
返回投射到向量b
的向量。
返回从给定法线定义的平面反射的向量。
返回旋转了phi
弧度的向量。参阅@GDScript.deg2rad。
- Vector2 round ( )
返回所有分量都被四舍五入为最接近的整数的向量,中间情况下四舍五入为零。
- Vector2 sign ( )
根据分量的符号,返回每个分量设置为 1 或负1的向量。如果分量为零,则返回正1。
返回这个向量与to
之间的球面线性插值的结果,按weight
的数量。weight
的范围是0.0到1.0,表示插值的数量。
注意:两个向量都必须被归一化。
返回沿着由给定法线定义的平面滑动的向量。
返回这个向量,每个分量都捕捉到step
的最近倍数。这也可以用来四舍五入到任意数量的小数。
- Vector2 tangent ( )
返回一个与原来相比逆时针旋转90度的垂直向量,长度不变。