This is an old revision of the document!
Prezentarea pe scurt:
Materiale necesare:
Sunt definite constante 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 și a pinilor pentru butoane. 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, direcția ei este inversată și 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
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.