:github_url: hide .. Generated automatically by doc/tools/makerst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the Vector2.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_Vector2: Vector2 ======= **Category:** Built-In Types Brief Description ----------------- Vector used for 2D math. Properties ---------- +---------------------------+------------------------------------+ | :ref:`float` | :ref:`x` | +---------------------------+------------------------------------+ | :ref:`float` | :ref:`y` | +---------------------------+------------------------------------+ Methods ------- +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`Vector2` **(** :ref:`float` x, :ref:`float` y **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`abs` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`angle` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`angle_to` **(** :ref:`Vector2` to **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`angle_to_point` **(** :ref:`Vector2` to **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`aspect` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`bounce` **(** :ref:`Vector2` n **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`ceil` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`clamped` **(** :ref:`float` length **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`cross` **(** :ref:`Vector2` with **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`cubic_interpolate` **(** :ref:`Vector2` b, :ref:`Vector2` pre_a, :ref:`Vector2` post_b, :ref:`float` t **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`direction_to` **(** :ref:`Vector2` b **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`distance_squared_to` **(** :ref:`Vector2` to **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`distance_to` **(** :ref:`Vector2` to **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`dot` **(** :ref:`Vector2` with **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`floor` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_normalized` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`length` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`length_squared` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`linear_interpolate` **(** :ref:`Vector2` b, :ref:`float` t **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`normalized` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`project` **(** :ref:`Vector2` b **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`reflect` **(** :ref:`Vector2` n **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`rotated` **(** :ref:`float` phi **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`round` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`slerp` **(** :ref:`Vector2` b, :ref:`float` t **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`slide` **(** :ref:`Vector2` n **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`snapped` **(** :ref:`Vector2` by **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`tangent` **(** **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Constants --------- .. _class_Vector2_constant_ZERO: .. _class_Vector2_constant_ONE: .. _class_Vector2_constant_INF: .. _class_Vector2_constant_LEFT: .. _class_Vector2_constant_RIGHT: .. _class_Vector2_constant_UP: .. _class_Vector2_constant_DOWN: - **ZERO** = **Vector2( 0, 0 )** --- Zero vector. - **ONE** = **Vector2( 1, 1 )** --- One vector. - **INF** = **Vector2( inf, inf )** --- Infinite vector. - **LEFT** = **Vector2( -1, 0 )** --- Left unit vector. - **RIGHT** = **Vector2( 1, 0 )** --- Right unit vector. - **UP** = **Vector2( 0, -1 )** --- Up unit vector. - **DOWN** = **Vector2( 0, 1 )** --- Down unit vector. Description ----------- 2-element structure that can be used to represent positions in 2D space or any other pair of numeric values. Tutorials --------- - :doc:`../tutorials/math/index` Property Descriptions --------------------- .. _class_Vector2_property_x: - :ref:`float` **x** The vector's x component. Also accessible by using the index position ``[0]``. ---- .. _class_Vector2_property_y: - :ref:`float` **y** The vector's y component. Also accessible by using the index position ``[1]``. Method Descriptions ------------------- .. _class_Vector2_method_Vector2: - :ref:`Vector2` **Vector2** **(** :ref:`float` x, :ref:`float` y **)** Constructs a new Vector2 from the given x and y. ---- .. _class_Vector2_method_abs: - :ref:`Vector2` **abs** **(** **)** Returns a new vector with all components in absolute values (i.e. positive). ---- .. _class_Vector2_method_angle: - :ref:`float` **angle** **(** **)** Returns the vector's angle in radians with respect to the x-axis, or ``(1, 0)`` vector. Equivalent to the result of atan2 when called with the vector's x and y as parameters: ``atan2(x, y)``. ---- .. _class_Vector2_method_angle_to: - :ref:`float` **angle_to** **(** :ref:`Vector2` to **)** Returns the angle in radians between the two vectors. ---- .. _class_Vector2_method_angle_to_point: - :ref:`float` **angle_to_point** **(** :ref:`Vector2` to **)** Returns the angle in radians between the line connecting the two points and the x coordinate. ---- .. _class_Vector2_method_aspect: - :ref:`float` **aspect** **(** **)** Returns the ratio of x to y. ---- .. _class_Vector2_method_bounce: - :ref:`Vector2` **bounce** **(** :ref:`Vector2` n **)** Returns the vector "bounced off" from a plane defined by the given normal. ---- .. _class_Vector2_method_ceil: - :ref:`Vector2` **ceil** **(** **)** Returns the vector with all components rounded up. ---- .. _class_Vector2_method_clamped: - :ref:`Vector2` **clamped** **(** :ref:`float` length **)** Returns the vector with a maximum length. ---- .. _class_Vector2_method_cross: - :ref:`float` **cross** **(** :ref:`Vector2` with **)** Returns the 2 dimensional analog of the cross product with the given vector. ---- .. _class_Vector2_method_cubic_interpolate: - :ref:`Vector2` **cubic_interpolate** **(** :ref:`Vector2` b, :ref:`Vector2` pre_a, :ref:`Vector2` post_b, :ref:`float` t **)** Cubicly interpolates between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``t``. ``t`` is in the range of ``0.0 - 1.0``, representing the amount of interpolation. ---- .. _class_Vector2_method_direction_to: - :ref:`Vector2` **direction_to** **(** :ref:`Vector2` b **)** Returns the normalized vector pointing from this vector to ``b``. ---- .. _class_Vector2_method_distance_squared_to: - :ref:`float` **distance_squared_to** **(** :ref:`Vector2` to **)** Returns the squared distance to vector ``b``. Prefer this function over :ref:`distance_to` if you need to sort vectors or need the squared distance for some formula. ---- .. _class_Vector2_method_distance_to: - :ref:`float` **distance_to** **(** :ref:`Vector2` to **)** Returns the distance to vector ``b``. ---- .. _class_Vector2_method_dot: - :ref:`float` **dot** **(** :ref:`Vector2` with **)** Returns the dot product with vector ``b``. ---- .. _class_Vector2_method_floor: - :ref:`Vector2` **floor** **(** **)** Returns the vector with all components rounded down. ---- .. _class_Vector2_method_is_normalized: - :ref:`bool` **is_normalized** **(** **)** Returns ``true`` if the vector is normalized. ---- .. _class_Vector2_method_length: - :ref:`float` **length** **(** **)** Returns the vector's length. ---- .. _class_Vector2_method_length_squared: - :ref:`float` **length_squared** **(** **)** Returns the vector's length squared. Prefer this method over :ref:`length` if you need to sort vectors or need the squared length for some formula. ---- .. _class_Vector2_method_linear_interpolate: - :ref:`Vector2` **linear_interpolate** **(** :ref:`Vector2` b, :ref:`float` t **)** Returns the result of the linear interpolation between this vector and ``b`` by amount ``t``. ``t`` is in the range of ``0.0 - 1.0``, representing the amount of interpolation. ---- .. _class_Vector2_method_normalized: - :ref:`Vector2` **normalized** **(** **)** Returns the vector scaled to unit length. Equivalent to ``v / v.length()``. ---- .. _class_Vector2_method_project: - :ref:`Vector2` **project** **(** :ref:`Vector2` b **)** Returns the vector projected onto the vector ``b``. ---- .. _class_Vector2_method_reflect: - :ref:`Vector2` **reflect** **(** :ref:`Vector2` n **)** Returns the vector reflected from a plane defined by the given normal. ---- .. _class_Vector2_method_rotated: - :ref:`Vector2` **rotated** **(** :ref:`float` phi **)** Returns the vector rotated by ``phi`` radians. See also :ref:`@GDScript.deg2rad`. ---- .. _class_Vector2_method_round: - :ref:`Vector2` **round** **(** **)** Returns the vector with all components rounded to the nearest integer, with halfway cases rounded away from zero. ---- .. _class_Vector2_method_slerp: - :ref:`Vector2` **slerp** **(** :ref:`Vector2` b, :ref:`float` t **)** Returns the result of SLERP between this vector and ``b``, by amount ``t``. ``t`` is in the range of ``0.0 - 1.0``, representing the amount of interpolation. Both vectors need to be normalized. ---- .. _class_Vector2_method_slide: - :ref:`Vector2` **slide** **(** :ref:`Vector2` n **)** Returns the component of the vector along a plane defined by the given normal. ---- .. _class_Vector2_method_snapped: - :ref:`Vector2` **snapped** **(** :ref:`Vector2` by **)** Returns the vector snapped to a grid with the given size. ---- .. _class_Vector2_method_tangent: - :ref:`Vector2` **tangent** **(** **)** Returns a perpendicular vector.