Sari la conținut
EduCamp
Godot / Jocuri Începător Godot de la zero · partea 2

Scene, noduri și personajul

Creezi proiectul jocului, construiești personajul ca scenă separată din trei noduri și îl așezi în scena principală folosind coordonate.

50 minute Nivel: Începător EduCamp

Nume și prenume: ................................................    Clasa: .................    Data: .......................

La finalul fișei, elevul poate:

  • creeze un proiect nou și scena principală a jocului
  • explice ce este un nod, o scenă și relația părinte–copil
  • construiască scena Player din CharacterBody2D, Sprite2D și CollisionShape2D
  • folosească sistemul de coordonate 2D și proprietățile Transform
  • instanțieze o scenă în altă scenă

Ai nevoie de:

  • Godot 4

Un joc nu se construiește dintr-o singură bucată. Se construiește din piese care se pot folosi de mai multe ori. În fișa asta faci prima piesă: personajul.

Cum arată la final

Două scene, în două fișiere separate:

main.tscn                    player.tscn
Main                         Player          [CharacterBody2D]
└── Player  🎬               ├── Imagine     [Sprite2D]
                             └── Coliziune   [CollisionShape2D]

Uită-te aici ori de câte ori nu ești sigur că ai făcut bine, și compară cu panoul Scene.

1. Pregătim proiectul

  1. În Project Manager apasă Create.
  2. La Project Name scrie ColecteazaMonede, fără spații și fără diacritice.
  3. La Renderer alege Compatibility, apoi Create & Edit.
  4. În panoul Scene apasă 2D Scene. Apare nodul rădăcină.
  5. Cu el selectat, apasă F2 (redenumește) și scrie Main.
  6. Ctrl+S → salvează ca main.tscn.

Main este scena în care se adună toate piesele jocului — cea care pornește când apeși F5.

2. Nodul și scena

Nodul este piesa de bază din Godot. Fiecare tip de nod face un singur lucru: afișează o imagine, detectează o coliziune, redă un sunet, scrie text pe ecran.

Scena este un arbore de noduri, salvat într-un fișier .tscn.

Personajul nostru va arăta așa:

Player [CharacterBody2D]
├── Imagine [Sprite2D]
└── Coliziune [CollisionShape2D]
NodulCe face
CharacterBody2Dcorpul personajului, mișcat prin cod
Sprite2Dafișează imaginea
CollisionShape2Ddă forma fizică, folosită la ciocniri

3. Relația părinte–copil

Player este părintele. Imagine și Coliziune sunt copiii lui.

Regula care contează:

De aceea Imagine și Coliziune rămân la (0, 0): sunt exact în centrul personajului.

4. Construim scena Player

Personajul se construiește într-o scenă separată, nu direct în Main.

  1. Scene → New Scene.
  2. În panoul Scene apasă Other Node, caută CharacterBody2D și apasă Create.
  3. Cu nodul selectat, apasă F2 și scrie Player. Este rădăcina acestei scene.
  4. Cu Player selectat, apasă Ctrl+A, adaugă Sprite2D, apoi F2 (redenumește) → Imagine.
  5. Selectează Imagine. Din FileSystem trage icon.svg peste câmpul Texture din Inspector.
  1. Cu Imagine selectat, deschide în Inspector secțiunea Transform. La Scale scrie 0.2 pentru x și 0.2 pentru y.

Robotul se micșorează. Imaginea are 128 de pixeli; înmulțită cu 0,2 devine cam 26 — potrivită pentru un personaj care se plimbă prin ecran.

  1. Selectează din nou Player (important!), Ctrl+ACollisionShape2DF2Coliziune.
  2. Cu Coliziune selectat, în Inspector la Shape apasă <empty> și alege New RectangleShape2D.
  3. Apasă pe Shape ca să se deschidă, iar la Size scrie 26 pentru x și 26 pentru y.
  4. Salvează cu Ctrl+S, sub numele player.tscn.

Arborele trebuie să arate exact așa:

Player
├── Imagine
└── Coliziune

Dacă lângă Coliziune a rămas un triunghi galben ⚠, înseamnă că proprietatea Shape e încă goală. Reia pasul 8.

5. Coordonatele în 2D

Ca să pui personajul într-un anumit loc, ai nevoie de coordonate.

Într-o scenă 2D poziția are două numere: X și Y.

  • Originea (0, 0) este în colțul stânga-sus
  • X crește spre dreapta
  • Y crește în jos

Fereastra implicită a jocului are 1152 × 648 pixeli, deci centrul ei este la (576, 324).

Secțiunea Transform a oricărui nod 2D are trei proprietăți:

ProprietateaCe face
Positionpoziția nodului, ca Vector2(X, Y)
Rotationrotirea, în grade
Scalemărirea sau micșorarea, pe fiecare axă

6. Punem personajul în joc

Acum legăm cele două scene: player.tscn intră în main.tscn.

  1. Deschide main.tscn din FileSystem.
  2. Trage player.tscn din FileSystem direct în Viewport.

În panoul Scene a apărut un nod Player, cu o iconiță de „claps de film” 🎬 lângă nume, iar copiii lui nu se văd.

  1. Selectează Player, deschide Transform și pune Position la x = 576, y = 324.
  2. Ctrl+S, apoi F5.

Personajul apare în mijlocul ferestrei. Nu se mișcă încă — mișcarea se scrie în cod, în fișa următoare.

Exerciții

🔑 Rezolvare
PositionUnde ajunge
(100, 100)sus-stânga, aproape de colț
(576, 50)sus, la mijloc pe orizontală
(576, 600)jos, la mijloc pe orizontală

Regula pe scurt: X mai mic → spre stânga; Y mai mic → în sus.

🔑 Rezolvare

Amândouă. Nu sunt două personaje diferite, ci două instanțe ale aceleiași scene. Ai modificat rețeta, deci s-au schimbat toate copiile făcute după ea.

Aici e câștigul: într-un joc cu 30 de inamici, îi schimbi pe toți dintr-un singur loc.

Șterge al doilea Player și pune Scale înapoi la 0.2 înainte de a merge mai departe.

🔑 Rezolvare

Imaginea s-a decalat cu 50 de pixeli spre dreapta față de formă, iar decalajul rămâne și când muți personajul.

Poziția unui copil se măsoară față de părinte, nu față de ecran. Cei 50 de pixeli sunt „50 la dreapta față de centrul lui Player”, oriunde s-ar afla Player.

De asta imaginea și coliziunea trebuie ținute la (0, 0): altfel personajul se ciocnește de pereți cu o parte a corpului care nu se vede.

🔑 Rezolvare
main.tscn                    player.tscn
Main                         Player
└── Player  🎬               ├── Imagine
                             └── Coliziune

În main.tscn, Player apare fără copii: nodurile lui sunt „împachetate” în scena separată.

Ce ai învățat

  • Un nod face un singur lucru; un obiect din joc se face combinând noduri.
  • Copilul se mișcă odată cu părintele, iar poziția lui se măsoară față de părinte.
  • În 2D, originea e sus-stânga, X crește spre dreapta, Y crește în jos.
  • O scenă salvată poate fi folosită de oricâte ori, ca instanță.
  • Modifici scena o dată → se schimbă toate instanțele.

Ai un personaj care stă pe loc. În fișa următoare îl faci să se miște.

Autor: EduCamp Actualizat: 16 august 2026