This is an old revision of the document!
Joc Pong
Autor
Cioplean Alexandru-Mihai 331CB
Introducere
Prezentarea pe scurt a proiectului vostru:
un joc de pong pe un ecran lcd cu 2 playeri, fiecare player sa aiba cate 2 butoane pentru miscarea fiecarei platforme
scorul este afisat in partea de sus
difuzarea unui sunet atunci cand un jucator castiga un punct
Descriere generală
Schema bloc:
Hardware Design
Lista de piese:
Arduino UNO
breadboard
4 butoane
ecran LCD
buzzer
Schema electrica:
Software Design
Am scris codul in mediul de dezvoltare: Arduino IDE.
Am folosit urmatoarele biblioteci:
Adafruit_GFX - implementarea functiilor de afisare pe ecran
Adafruit_ST7735 - comunicarea intre arduino si ecran
SPI - comunicarea prin SPI
Wire
Ca variabile globale am:
player_delay, ball_delay - timpul la care pozitia playerilor, respectiv a mingii se actualizeaza
player1_score, player2_score - scorul fiecarui jucator
ball_x, ball_y - pozitia mingii
ball_dir_x, ball_dir_y - directia mingii pe axele Ox si Oy, acestea au valori 1 sau -1 in functie de sensul pozitiv sau negativ de deplasare pe cele doua axe
player1_x, player1_y - pozitia jucatorului 1
player2_x, player2_y - pozitia jucatorului 2
running - variabila booleana care spune daca jocul ruleaza la momentul curent de timp
Functiile implementate sunt:
setup() - initializarea pinilor si a ecranului
loop() - se detecteaza apasarile de butoane pentru modificarea pozitiei jucatorilor, se deplaseaza mingea conform cu ball_dir_x si ball_dir_y, atunci cand mingea atinge unul dintre peretii playerilor, scorul se actualizeaza, este difuzat un sunet si programul iese din starea de running
display_score() - afiseaza pe ecran scorul curent al jocului
game_over() - afiseaza ecranul de game over atunci cand un jucator ajunge la 11 puncte
reset() - functie folosita pentru a reseta pozitia jucatorilor si a mingii
Bibliografie/Resurse