Serviciul RunService oferă acces direct la bucla centrală de rulare a jocului (Game Loop). Acesta expune trei evenimente fundamentale sincronizate cu pașii de simulare fizică și randare grafică:
| Eveniment RunService | Unde rulează | Momentul execuției în cadru |
|---|---|---|
RenderStepped |
Exclusiv Client (LocalScript) | Chiar înainte de desenarea cadrului pe ecran; ideal pentru actualizarea camerei. |
Stepped |
Server și Client | Înainte de calculul coliziunilor și al simulării fizice. |
Heartbeat |
Server și Client | După ce simularea fizică a fost complet rezolvată; optim pentru logica de joc. |
Rotirea continuă a unui obiect sincronizată cu timpul deltaTime
local RunService = game:GetService("RunService")
local parteRotativa = script.Parent :: BasePart
local vitezaRotatieGrade = 90 -- 90 de grade pe secundă
RunService.Heartbeat:Connect(function(deltaTime: number)
-- Multiplicăm cu deltaTime pentru a garanta o viteză identică indiferent de FPS:
local rotatieCurenta = CFrame.Angles(0, math.rad(vitezaRotatieGrade * deltaTime), 0)
parteRotativa.CFrame = parteRotativa.CFrame * rotatieCurenta
end)
Întrebări & Exemple de Cod:
Ciclul de Joc (Game Loop) cu RunService: Heartbeat, Stepped și RenderSteppedAi o nelămurire despre utilizarea comenzii
Ciclul de Joc (Game Loop) cu RunService: Heartbeat, Stepped și RenderSteppedsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!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.