Sari la conținut
EduCamp
Alice 3MediuAlice 3 de la zero · partea 5

Procedurile proprii

Gesturile și secvențele care se repetă devin proceduri cu nume ales, unele cu parametri. Animația se împarte în scene, câte o procedură pentru fiecare.

50 minuteNivel: MediuEduCamp

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

Ai nevoie de:

  • Proiectul cu mersul, din fișa anterioară

1. Ce este o procedură proprie

O procedură este o secvență de instrucțiuni cu un nume. Procedurile move, turn și say sunt ale lui Alice. O procedură proprie se scrie o singură dată și se folosește de câte ori este nevoie, ca orice altă plăcuță.

Procedura proprie se creează în clasa personajului:

  1. Deasupra editorului de cod, deschide lista claselor (la început scrie în ea Scene).
  2. Alege clasa personajului, de exemplu Alien, apoi Add Alien Procedure….
  3. Scrie numele procedurii, de exemplu pasDrept, și apasă OK.

Procedura se deschide într-o filă nouă a editorului.

2. Cuvântul this

În interiorul unei proceduri a clasei Alien, this înseamnă personajul care execută procedura. Articulațiile se aleg tot din lista de obiecte, iar în cod apar ca this.getRightHip:

do together
this.getRightHip turn BACKWARD, 0.1, duration: 0.5
this.getLeftShoulder turn BACKWARD, 0.05, duration: 0.5
this move FORWARD, 0.25, duration: 0.5
do together
this.getRightHip turn FORWARD, 0.1, duration: 0.5
this.getLeftShoulder turn FORWARD, 0.05, duration: 0.5
this move FORWARD, 0.25, duration: 0.5

În myFirstMethod, procedura nouă apare în fila Procedures a personajului, în capul listei, și se folosește ca oricare alta:

this.alien pasDrept
this.alien pasStang

3. Parametrii

Un parametru este o valoare dată procedurii la fiecare folosire. Parametrul se adaugă cu butonul Add Parameter…, din capul procedurii, unde se aleg tipul și numele lui:

  • WholeNumber: număr întreg, de exemplu numărul de pași;
  • DecimalNumber: număr cu zecimale, de exemplu o distanță;
  • TextString: text, de exemplu o replică.

Procedura mergi are parametrul nrPasi, de tip WholeNumber:

count up to nrPasi
this pasDrept
this pasStang
this straightenOutJoints

Folosirea ei, cu valori diferite:

this.alien mergi 2
this.alien turn LEFT, 0.25
this.alien mergi 4

4. Scenele animației

O animație lungă se împarte în scene, câte o procedură pentru fiecare. Procedurile scenelor se scriu în clasa Scene, cu Add Scene Procedure…, iar myFirstMethod le execută în ordine:

// Începutul: personajele se întâlnesc
this scenaIntalnirii
// Mijlocul: drumul până la piatră
this scenaDrumului
// Sfârșitul: titlurile și creditele
this scenaFinala

Exerciții

🔑 Rezolvare
this.getRightShoulder turn BACKWARD, 0.25
count up to ori
this.getRightElbow turn LEFT, 0.1, duration: 0.3
this.getRightElbow turn RIGHT, 0.1, duration: 0.3
this straightenOutJoints
🔑 Rezolvare
  • sari: în clasa personajului, pentru că o execută un singur personaj, asupra lui însuși.
  • scenaFinala: în clasa Scene, pentru că folosește mai multe obiecte din scenă.
  • dialogulDeLaPiatra: în clasa Scene, pentru că în ea lucrează două personaje.

Ce ai învățat

La finalul fișei, poți:

  • să creezi o procedură proprie în clasa unui personaj și în clasa Scene;
  • să folosești cuvântul this în procedurile unei clase;
  • să adaugi parametri unei proceduri și să o folosești cu valori diferite;
  • să împarți o animație în scene și să le pui în ordine în myFirstMethod;
  • să adaugi comentarii în cod.
Autor: EduCampActualizat: 4 octombrie 2026