Fiecare nod din Godot parcurge un ciclu de viață bine definit, apelat automat de motorul SceneTree. Înțelegerea diferenței dintre _process și _physics_process este esențială pentru a evita erorile de sincronizare și mișcările sacadate (stuttering).
| Funcție nativă | Frecvență de apel | Când se folosește? |
|---|---|---|
_enter_tree() |
O singură dată, la atașarea nodului în arbore. | Înregistrare la manageri globali înainte ca copiii să fie gata. |
_ready() |
O singură dată, după ce toți copiii nodului sunt gata. | Inițializare de componente, conexiuni de semnale, cache de noduri. |
_process(delta) |
La fiecare cadru grafic desenat (framerate variabil: 60, 144, 240 FPS). | Actualizări vizuale, rotații cosmetice, interfețe grafice, citire de input non-fizic. |
_physics_process(delta) |
La un interval fix de timp (implicit exact de 60 de ori pe secundă). | Orice operațiune cu corpuri fizice, gravitație, deplasare cu move_and_slide. |
Exemplu de rotație continuă a unui obiect în _process
extends Node2D
@export var viteza_rotatie_grade: float = 90.0 # 90 de grade per secundă
func _ready() -> void:
print("Nodul %s a fost încărcat complet în scenă!" % name)
func _process(delta: float) -> void:
# Multiplicăm ÎNTOTDEAUNA cu 'delta' (fracțiunea de secundă scursă)!
# Astfel viteza este IDENTICĂ pe un ecran de 60Hz ca pe unul de 144Hz:
rotation += deg_to_rad(viteza_rotatie_grade) * delta