GDS

Învață GDScript (Godot Engine): comenzi explicate cu exemple

66 de comenzi 28 de categorii Comunitate & Q&A

GDScript este limbajul de programare nativ, de nivel înalt și tipizat dinamic/gradual, integrat direct în nucleul motorului de jocuri open-source Godot Engine. Conceput specific pentru dezvoltarea rapidă de jocuri 2D și 3D, GDScript împrumută sintaxa curată și indentarea elegantă din Python, dar este optimizat intern la nivel de C++ pentru a interacționa fără intermediari cu arhitectura unică de Scene și Noduri a motorului Godot.

Arhitectura Orientată pe Noduri din Godot 4
# În Godot, un joc este o ierarhie de Scene compuse din Noduri (Nodes):
extends CharacterBody2D

# 1. Adnotări moderne specifice Godot 4:
@export var viteza: float = 300.0
@export var viata_maxima: int = 100
@onready var sprite: Sprite2D = $Sprite2D
@onready var collision: CollisionShape2D = $CollisionShape2D

# 2. Ciclul de simulare fizică (pas fix de calcul):
func _physics_process(delta: float) -> void:
    var directie := Input.get_vector("stanga", "dreapta", "sus", "jos")
    velocity = directie * viteza
    move_and_slide() # Algoritmul intern de coliziuni fizice rezolvă contactele!

De ce este GDScript alegerea preferată în Godot 4?

Deși Godot suportă oficial și limbajul C# (.NET), GDScript rămâne opțiunea dominantă din industrie din mai multe motive strategice:

  • Integrare simbiotică cu Editorul: Tipurile de date (precum Vector2, Vector3, Transform2D, Color) sunt cetățeni de prim rang cu vectorizare nativă fără overhead de alocare pe heap.
  • Adnotările Declarative: Modificatorii @export generează instantaneu controale vizuale în panoul Inspector, permițând designerilor să ajusteze parametri fără a atinge codul sursă.
  • Sistemul Decuplat de Semnale (Signals): Comunicarea dintre componente respectă principiul arhitectural „Call Down, Signal Up” (nodurile părinte apelează metode ale copiilor, iar copiii emit semnale către părinți), prevenind dependențele circulare.
  • Performanță crescută în Godot 4: GDScript 2.0 include tipare statică opțională, compilare în bytecode de mare viteză și suport complet pentru corutine asincrone prin cuvântul-cheie await.
Compatibilitate Godot 4: Toate exemplele din această secțiune respectă standardul modern Godot 4.x (sintaxa nouă de semnale semnal.connect(), funcțiile _physics_process cu move_and_slide() fără parametri și adnotările cu @).

Mai jos găsești cele 12 ghiduri fundamentale organizate de la bazele limbajului și instanțierea nodurilor până la fizică 2D, animații fluide și salvarea persistentă a stării de joc.

Animații și Efecte 2 comenzi

Inteligență Artificială și Navigație 2 comenzi

Audio și Sunet 2 comenzi

Interfață Grafică (UI) 3 comenzi

Grafică 3D și Spațial 5 comenzi

Grafică 2D și Randare 10 comenzi

Fizică 3D și Mișcare 2 comenzi

Securitate și Date 1 comandă

Sistem și Timp 5 comenzi

Stocare și Date 4 comenzi

Fizică 2D și Coliziuni 4 comenzi

Rețele și Multiplayer 5 comenzi

Arhitectură de Scene și Noduri 3 comenzi

Fundamentele Limbajului 2 comenzi

Noduri & Arhitectura SceneTree 2 comenzi

Semnale & Evenimente 1 comandă

Fizică & Mișcare 2 comenzi

Input & Control 1 comandă

Animații & Efecte Vizuale 1 comandă

Persistență & Baze de Date 1 comandă

Arhitectură de Joc 1 comandă

Asincronism & Flux 1 comandă

Arhitectură și Date 1 comandă

Animație și Grafică 1 comandă

Dezvoltare Nivel 2D 1 comandă

Cameră și Randare 1 comandă

Interfață Utilizator (UI) 1 comandă

Fizică și Detecție 1 comandă

Toate nodurile, clasele și conceptele GDScript & Godot Engine

Indexul complet al celor 66 de noduri esențiale, clase din motorul Godot 4, tehnici de randare 2D/3D, simulări fizice, sisteme multiplayer și API-uri native GDScript. Fiecare concept beneficiază de o pagină dedicată cu exemple complete de cod în GDScript, explicații practice în limba română și bune practici de optimizare.

Sintaxă, Noduri și Ciclul de Viață al Jocului (7)

Nod / Clasă / Concept Descriere
Sintaxă & Tipare Statică Sintaxa GDScript 2.0, variabile locale puternic tipizate și inferență
@export, @onready & @tool Adnotări pentru inspectorul grafic, căutarea nodurilor și scripturi în editor
Ciclul de Viață (_process, _physics) Metodele native _ready(), _process(delta) și _physics_process(delta)
Manipularea Arborelui (get_node, $) Căutarea copiilor, instanțierea scenelor și eliberarea memoriei cu queue_free()
Sistemul de Semnale (Signals) Decuplarea arhitecturală a nodurilor prin declarare, .connect() și .emit()
Corutine & Asincronism (await) Suspendarea și reluarea execuției funcțiilor și sincronizarea cu timere
Autoloads (Singletons Globale) Stocarea stării globale de joc, manageri de scenă și variabile persistente

Fizică 2D, Mișcare și Detecție Coliziuni (7)

Nod / Clasă / Concept Descriere
CharacterBody2D & move_and_slide Controlul cinematic al jucătorilor 2D, manipularea vitezei și gravitație
RigidBody2D (Fizică Newtoniana) Simularea completă a masei, impulsurilor centrale și a contactelor fizice
StaticBody2D & AnimatableBody2D Pereți imobili și platforme mobile sincronizate cu pasul fizic
Area2D (Zone de Declanșare) Detecția intrării entităților în zonă prin semnalul body_entered
CollisionShape2D & Straturi Fizice Forme geometrice de coliziune și configurarea măștilor de contact
RayCast2D & Interogări Spațiale Scanarea cu raze 2D pentru vizibilitate, lasere și intersecții fizice
PhysicsServer2D (Nivel Scăzut) Simularea fizică a zeci de mii de corpuri direct pe server fără noduri

Grafică 2D, Texturi, Iluminare și Efecte (9)

Nod / Clasă / Concept Descriere
Sprite2D & Spritesheets Randarea imaginilor, centrare, inversare flip și decupare din regiuni
TileMapLayer (Hărți cu Dale) Construirea nivelurilor pe grile și straturi multiple în Godot 4.3+
Camera2D (Limits & Smoothing) Urmărirea fluidă a personajului, limite de nivel și zoom dinamic
PointLight2D & Umbre Dinamice Surse radiale de lumină și umbre proiectate prin LightOccluder2D
CanvasModulate (Cicluri Zi-Noapte) Modularea tonalității cromatice globale pentru întuneric și ambianță
Line2D (Linii & Traiectorii) Desenarea fasciculelor laser, traiectorii de proiectile și efecte de trail
Polygon2D (Geometrie Procedurală) Randarea poligoanelor vectoriale și teren destructibil
ShaderMaterial & Shaders Efecte vizuale pe GPU (distorsiune apă, contururi, dizolvare)
Desenare 2D Nativă (_draw) Primitive grafice de mare viteză și redesenare cu queue_redraw()

Grafică 3D, Modele și Fizică Spațială (7)

Nod / Clasă / Concept Descriere
Node3D (Transform3D & Basis) Coordonate spațiale tridimensionale, rotații și matrici de orientare
Camera3D & Raze din Mouse Controlul perspectivei, FOV și proiecția razelor de selecție în spațiu
CharacterBody3D (Navigare 3D) Mișcare cinematică tridimensională pentru jocuri FPS și Third-Person
RayCast3D (Arme Hitscan) Detectarea instantanee a coliziunilor 3D și a punctului de impact
MeshInstance3D & Materiale PBR Afișarea modelelor 3D (GLTF/OBJ) și configurarea materialelor fizice
OmniLight3D, SpotLight3D, Sun Sisteme dinamice de iluminare sferică, reflectoare și soare directional
WorldEnvironment (Post-Procesare) Efecte grafice cinematice: Glow/Bloom, Tonemap, SSAO, SSR și ceată

Animații, Tweens și Particule (5)

Nod / Clasă / Concept Descriere
AnimationPlayer & AnimationTree Animații de proprietăți și mașini de stări complexe (State Machines)
AnimatedSprite2D & SpriteFrames Animații tradiționale 2D cadru-cu-cadru pe baza foilor de texturi
SceneTreeTween (create_tween) Interpolare matematică fluidă a proprietăților direct din cod
GPUParticles2D (Particule GPU) Sisteme masive de particule accelerate hardware pentru explozii și magii
ParallaxBackground & Parallax2D Efecte de defilare paralelă cu adâncime de fundal în jocuri 2D

Interfețe Grafice (UI) și Evenimente de Input (6)

Nod / Clasă / Concept Descriere
Containere UI Control & Ancore Aspect responsiv adaptabil la orice rezoluție prin VBox/HBoxContainer
RichTextLabel & BBCode Formatare de text îmbogățit, culori dinamice și animații de caractere
Button & TextureButton Elemente interactive tactile, navigație din gamepad și stări hover
SubViewport & Ecrane Multiple Minimăpi, camere de securitate și suprafețe de randare izolate
Gestiunea Input-ului & Evenimente Capturarea acțiunilor de control prin tastatură, mouse și gamepad
VisibleOnScreenNotifier2D Optimizarea ecranului prin dezactivarea nodurilor ieșite din câmpul vizual

Stocare, Fișiere, Resurse și Sistem (9)

Nod / Clasă / Concept Descriere
FileAccess & user:// Salvarea și citirea sigură a fișierelor de progres în directorul utilizator
ConfigFile (Setări INI) Administrarea opțiunilor de volum, rezoluție și controale în format lizibil
DirAccess (Gestiune Foldere) Scanarea, crearea și ștergerea folderelor de pe disc
Resurse Custom (.tres) Structuri de date puternic tipizate reutilizabile pentru iteme și abilități
ResourceLoader (Background Load) Încărcarea asincronă a scenelor masive în fundal cu bară de progres
ResourceSaver (Salvare .tres) Scrierea programatică pe disc a resurselor și texturilor generate
PackedScene (Șabloane Scenă) Instanțierea dinamică și salvarea ierarhiilor de noduri la runtime
Clasa JSON Serializarea și validarea sigură a datelor structurate în format JSON
Marshalls (Base64 & Binar) Codificarea compactă a stărilor în șiruri text pentru coduri de salvare

Rețele, Web, Multiplayer și Criptografie (7)

Nod / Clasă / Concept Descriere
MultiplayerAPI & RPC-uri Arhitectura oficială de multiplayer, autoritate de rețea și adnotarea @rpc
ENetMultiplayerPeer Servere dedicate de mare viteză și clienți bazați pe protocolul UDP
HTTPRequest (API REST & Web) Nod de nivel înalt pentru integrarea serviciilor web și descărcări
HTTPClient (Nivel Scăzut) Comunicații HTTP avansate cu streaming binar de mare volum
WebSocketPeer (Full-Duplex) Conexiuni WebSocket în timp real compatibile cu jocurile de browser
Clasa Crypto (Securitate & SSL) Generare de chei RSA, certificate SSL și generare aleatorie sigură
Clasa OS (Platformă & Clipboard) Interogarea sistemului de operare, acces clipboard și model hardware

Navigație, Inteligență Artificială, Audio și Servere (9)

Nod / Clasă / Concept Descriere
NavigationAgent2D & NavMesh Căutare inteligentă de drum și evitare automată a obstacolelor
AStar2D & AStar3D (Algoritm A*) Calculul traseului optim pe grafuri de puncte pentru jocuri pe grile
AudioStreamPlayer2D & Audio 3D Redare de sunete spațializate 2D/3D în funcție de poziția camerei
AudioEffect & AudioBus Canale de mixare a sunetului și filtre dinamice de Reverb și LowPass
Clasa Time (Măsurare & Ceas) Măsurători temporale de mare precizie în microsecunde și ceas monoton
Engine (FPS & Slow-Motion) Reglarea vitezei timpului cu time_scale și detectarea modului editor
ProjectSettings (Setări Globale) Citirea și configurarea parametrilor din fisierul project.godot
DisplayServer (Ferestre & Ecran) Managementul modului Fullscreen, rezoluției și monitoarelor sistemului
RenderingServer (Nivel Scăzut) Desenare și alocare de resurse grafice direct pe GPU fără noduri
Comunitate & Schimb de cunoștințe

Discuții, Întrebări & Coduri GDScript (Godot Engine)

Ai o întrebare legată de GDScript (Godot Engine), cauți o soluție sau vrei să împărtășești un fragment util de cod? Trimite mai jos contribuția ta.

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.