Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Vector2

A 2D vector using floating point coordinates.

Description

A 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.

It uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike float which is always 64-bit. If double precision is needed, compile the engine with the option precision=double.

See Vector2i for its integer counterpart.

Note: In a boolean context, a Vector2 will evaluate to false if it's equal to Vector2(0, 0). Otherwise, a Vector2 will always evaluate to true.

Tutorials

Properties

float

x

0.0

float

y

0.0

Constructors

Vector2

Vector2 ( )

Vector2

Vector2 ( Vector2 from )

Vector2

Vector2 ( Vector2i from )

Vector2

Vector2 ( float x, float y )

Methods

Vector2

abs ( ) const

float

angle ( ) const

float

angle_to ( Vector2 to ) const

float

angle_to_point ( Vector2 to ) const

float

aspect ( ) const

Vector2

bezier_derivative ( Vector2 control_1, Vector2 control_2, Vector2 end, float t ) const

Vector2

bezier_interpolate ( Vector2 control_1, Vector2 control_2, Vector2 end, float t ) const

Vector2

bounce ( Vector2 n ) const

Vector2

ceil ( ) const

Vector2

clamp ( Vector2 min, Vector2 max ) const

float

cross ( Vector2 with ) const

Vector2

cubic_interpolate ( Vector2 b, Vector2 pre_a, Vector2 post_b, float weight ) const

Vector2

cubic_interpolate_in_time ( Vector2 b, Vector2 pre_a, Vector2 post_b, float weight, float b_t, float pre_a_t, float post_b_t ) const

Vector2

direction_to ( Vector2 to ) const

float

distance_squared_to ( Vector2 to ) const

float

distance_to ( Vector2 to ) const

float

dot ( Vector2 with ) const

Vector2

floor ( ) const

Vector2

from_angle ( float angle ) static

bool

is_equal_approx ( Vector2 to ) const

bool

is_finite ( ) const

bool

is_normalized ( ) const

bool

is_zero_approx ( ) const

float

length ( ) const

float

length_squared ( ) const

Vector2

lerp ( Vector2 to, float weight ) const

Vector2

limit_length ( float length=1.0 ) const

int

max_axis_index ( ) const

int

min_axis_index ( ) const

Vector2

move_toward ( Vector2 to, float delta ) const

Vector2

normalized ( ) const

Vector2

orthogonal ( ) const

Vector2

posmod ( float mod ) const

Vector2

posmodv ( Vector2 modv ) const

Vector2

project ( Vector2 b ) const

Vector2

reflect ( Vector2 n ) const

Vector2

rotated ( float angle ) const

Vector2

round ( ) const

Vector2

sign ( ) const

Vector2

slerp ( Vector2 to, float weight ) const

Vector2

slide ( Vector2 n ) const

Vector2

snapped ( Vector2 step ) const

Operators

bool

operator != ( Vector2 right )

Vector2

operator * ( Transform2D right )

Vector2

operator * ( Vector2 right )

Vector2

operator * ( float right )

Vector2

operator * ( int right )

Vector2

operator + ( Vector2 right )

Vector2

operator - ( Vector2 right )

Vector2

operator / ( Vector2 right )

Vector2

operator / ( float right )

Vector2

operator / ( int right )

bool

operator < ( Vector2 right )

bool

operator <= ( Vector2 right )

bool

operator == ( Vector2 right )

bool

operator > ( Vector2 right )

bool

operator >= ( Vector2 right )

float

operator [] ( int index )

Vector2

operator unary+ ( )

Vector2

operator unary- ( )


Constants

AXIS_X = 0

Enumerated value for the X axis. Returned by max_axis_index and min_axis_index.

AXIS_Y = 1

Enumerated value for the Y axis. Returned by max_axis_index and min_axis_index.

ZERO = Vector2(0, 0)

Zero vector, a vector with all components set to 0.

ONE = Vector2(1, 1)

One vector, a vector with all components set to 1.

INF = Vector2(inf, inf)

Infinity vector, a vector with all components set to @GDScript.INF.

LEFT = Vector2(-1, 0)

Left unit vector. Represents the direction of left.

RIGHT = Vector2(1, 0)

Right unit vector. Represents the direction of right.

UP = Vector2(0, -1)

Up unit vector. Y is down in 2D, so this vector points -Y.

DOWN = Vector2(0, 1)

Down unit vector. Y is down in 2D, so this vector points +Y.


Property Descriptions

float x = 0.0

The vector's X component. Also accessible by using the index position [0].


float y = 0.0

The vector's Y component. Also accessible by using the index position [1].


Constructor Descriptions

Vector2 Vector2 ( )

Constructs a default-initialized Vector2 with all components set to 0.


Vector2 Vector2 ( Vector2 from )

Constructs a Vector2 as a copy of the given Vector2.


Vector2 Vector2 ( Vector2i from )

Constructs a new Vector2 from Vector2i.


Vector2 Vector2 ( float x, float y )

Constructs a new Vector2 from the given x and y.


Method Descriptions

Vector2 abs ( ) const

Returns a new vector with all components in absolute values (i.e. positive).


float angle ( ) const

Returns this vector's angle with respect to the positive X axis, or (1, 0) vector, in radians.

For example, Vector2.RIGHT.angle() will return zero, Vector2.DOWN.angle() will return PI / 2 (a quarter turn, or 90 degrees), and Vector2(1, -1).angle() will return -PI / 4 (a negative eighth turn, or -45 degrees).

Illustration of the returned angle.

Equivalent to the result of @GlobalScope.atan2 when ca