# Class Vector2 **Module:** `require("engine")` A simple 2D vector class of float type ------------ ## Constructors List of constructors that will create an instance of `Vector2`. ### new() Default constructor that initializes the vector to [0, 0] ### new(x, y) Parametrized constructor that initializes the vector to [x, y] **Parameters:** * x: `number` - The x component * y: `number` - The y component ------------ ## Member Functions List of **member** functions within the table `Vector2`. These functions need to be called using the colon symbol on some instance of `Vector2`. ### distance(other) Calculates a distance to some other vector **Parameters:** * other: `Vector2` - The other vector to get distance to **Returns:** `number` - The distance ### rotate(angle) Returns a new vector that is rotated by some angle **Parameters:** * angle: `number` - in radians **Returns:** `Vector2` - A new rotated vector **Example:** ```lua local PI = 3.141592653589 local a = engine.Vector2.new(1.0, 0.0) local b = a:rotate(PI) -- Prints: Rotated vector [1, 0] by 180 degrees is: [-1, -8.742278e-08] print(string.format("Rotated vector %s by 180 degrees is: %s", a, b)) ``` ------------ ## Fields List of fields within the table `Vector2`. These variables belong to this class and can be accessed only via an instance of this class. ### x **Type:** `number` ### y **Type:** `number`