Vector2

Jest strukturą danych reprezentującą dwuwymiarowy wektor o wartościach zmiennoprzecinkowych. Jest często wykorzystywany do reprezentacji pozycji, prędkości, kierunku lub różnego rodzaju innych danych, które wymagają dwóch współrzędnych (x, y) w przestrzeni 2D.
Składnia:
var vector = Vector2(x, y)
Przykład użycia:
var position = Vector2(10.5, 20.3) # Tworzy nowy wektor o wartościach x=10.5, y=20.3
var velocity = Vector2(3.0, 4.0)
# Operacje na wektorach
var new_position = position + velocity * delta # Przykład prostego ruchu
print(new_position) # Wyświetli nową pozycję po dodaniu prędkości
Kluczowe właściwości i funkcje:
- x: Wartość współrzędnej w poziomie (float).
- y: Wartość współrzędnej w pionie (float).
Podstawowe operacje na Vector2
:
- Dodawanie i odejmowanie wektorów:
var result = Vector2(3, 4) + Vector2(1, 2) # Wynik: (4, 6)
- Mnożenie i dzielenie przez skalar:
var result = Vector2(3, 4) * 2 # Wynik: (6, 8)
- Długość wektora:
var length = Vector2(3, 4).length() # Długość wynosi 5, zgodnie z twierdzeniem Pitagorasa
- Normalizowanie wektora (używane, gdy potrzebujemy kierunku bez skali):
var direction = Vector2(3, 4).normalized() # Normalizuje wektor do jednostkowego
- Interpolacja (płynne przejście między dwoma wektorami):
var interpolated = Vector2(0, 0).linear_interpolate(Vector2(10, 10), 0.5) # Wynik: (5, 5)
Zastosowania:
- Ruch: Vector2 jest powszechnie używany do wyznaczania pozycji i prędkości postaci oraz obiektów w grach 2D.
- Fizyka: Przydaje się do reprezentowania wektorów sił, prędkości i przyspieszeń.
- Kierunek: Może być używany do obliczeń związanych z obrotem, np. gdy obiekt ma obracać się w stronę innego punktu.
Przykładowa funkcja, w której Vector2
jest używany do poruszania postaci w zależności od naciśniętych klawiszy:
func _process(delta):
var velocity = Vector2.ZERO
if Input.is_action_pressed("ui_right"):
velocity.x += 1
if Input.is_action_pressed("ui_left"):
velocity.x -= 1
if Input.is_action_pressed("ui_down"):
velocity.y += 1
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
velocity = velocity.normalized() * SPEED # Normalizuj i skaluj prędkość
position += velocity * delta # Zaktualizuj pozycję
Vector2
jest wszechstronną strukturą w Godot, niezbędną do pracy z grami 2D.
Vector2i
To struktura, która reprezentuje wektor o dwóch wymiarach (x, y) przy użyciu wartości całkowitych (int). Jest używana wszędzie tam, gdzie potrzebne są współrzędne lub wartości związane z pozycją na siatce, ale oparte na liczbach całkowitych, co jest przydatne w sytuacjach, gdzie precyzja zmiennoprzecinkowa nie jest wymagana lub gdy pozycje powinny zawsze być w pełni liczbowe (np. piksele).
Przykład użycia:
var position: Vector2i = Vector2i(10, 15)
print(position) # Output: (10, 15)
Kluczowe właściwości:
- x: Pierwsza wartość współrzędnej, liczba całkowita.
- y: Druga wartość współrzędnej, liczba całkowita.
Zastosowanie:
- Pozycjonowanie: Można używać
Vector2i
do precyzyjnego pozycjonowania obiektów w siatkach, gdzie wymagane są liczby całkowite, na przykład przy pracy z pikselami w grafice 2D. - Indeksy siatki: Idealnie nadaje się do przechowywania pozycji w dwuwymiarowej siatce (np. mapy kafelkowej).
Przykład w bardziej praktycznym kontekście:
# Definiowanie pozycji na siatce kafelkowej
var grid_position: Vector2i = Vector2i(3, 5)
# Uzyskiwanie wartości
var x = grid_position.x # 3
var y = grid_position.y # 5
Vector2i
różni się od Vector2
, który przechowuje wartości zmiennoprzecinkowe, używane tam, gdzie wymagana jest większa precyzja np. przy animacjach.
Dodaj komentarz