This is an old revision of the document!
Prezentarea pe scurt:
Materiale necesare:
Se începe prin includerea bibliotecilor necesare pentru comunicarea cu afișajul OLED și alte componente.
Sunt definite variabile globale pentru butoanele de sus și de jos utilizate pentru mișcarea jucătorului.
Sunt definite și inițializate variabilele pentru poziția bilei, direcția de deplasare a bilei, ratele de actualizare pentru mișcarea bilei și a paletelor, înălțimea paletei și pozițiile inițiale ale paletei CPU și jucătorului.
Funcția setup() este apelată o singură dată la pornirea programului și se ocupă de inițializarea afișajului OLED. De asemenea, afișează un teren de joc gol pentru o scurtă perioadă de timp.
Funcția loop() rulează într-o buclă continuă și gestionează mișcarea bilei și a paletelor în fiecare cadru.
În fiecare cadru, se verifică dacă trebuie actualizată poziția bilei. Dacă a trecut suficient timp de la ultima actualizare a bilei, se calculează noua poziție a bilei și se verifică dacă a lovit pereții verticali, pereții orizontali sau paletele CPU și jucătorului. Dacă bilea a lovit un obiect, scoate un sunet specific datorat buzzer-ului si direcția ei este inversata, iar noua poziție este calculată corespunzător.
În fiecare cadru, se verifică dacă trebuie actualizată poziția paletelor. Dacă a trecut suficient timp de la ultima actualizare a paletelor, se calculează noua poziție a paletei CPU pe baza poziției actuale a bilei și se verifică starea butoanelor pentru mișcarea paletei jucătorului. Apoi, se actualizează pozițiile paletei CPU și jucătorului și se desenează paletele pe afișaj.
La fiecare cadru în care s-a produs o actualizare, se actualizează afișajul pentru a reflecta noile poziții ale bilei și paletelor.
Funcția drawCourt() este folosită pentru a desena terenul de joc pe afișaj la începutul programului
La final se afiseaza scorul. </note>
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.