This is an old revision of the document!


Pong Game v2.0

Calcan Elena-Claudia 331CA

Introducere

Joc interactiv de pong 1v1 in care jucatorii se deplaseaza folosind butoane. Fata de jocul clasic, jucatorii au posibilitatea de a controla directia bilei prin colectarea unui element de pick-up aparut in timpul jocului. De asemenea, in timpul jocului pot aparea obstacole astfel incat sa ii incurce pe cei doi jucatori.

Descriere generală

Schema Bloc:

pongv2_schema_bloc.jpg

Jocul este implementat pe o placuta Arduino Uno, afisarea realizandu-se pe un display. Controlul jucatorilor se face prin intermediul butoanelor, existand si un buton special pentru schimbarea directiei bilei. Exista si un buzzer pentru a semnala coliziunile bilei cu terenul si obstacolele si cand atunci cand un jucator inscrie.

Hardware Design

Lista piese:

  • Arduino Uno R3
  • Butoane
  • Buzzer pasiv
  • OLED Display 0.96” 128×64 SPI
  • Fire

Schema electrica:

Software Design

Mediul de dezvoltare folosit: Arduino IDE.

Biblioteci folosite:

  • Wire.h
  • SPI.h - folosit pentru comunicare SPI
  • Adafruit_GFX.h - se foloseste pentru functiile de afisare pe ecran
  • Adafruit_SSD1306.h - folosit pentru comunicarea intre arduino si display

Implementare

  • Inainte de de incepera jocului este afisat un meniu ce contiune optiunile jocului. Optiunile reprezinta punctajul pana la care se poate juca, acestea fiind: 3, 5 sau 7 puncte.
  • Navigarea prin meniu si alegerea optiunii se realizeaza prin intermediul butoanelor celui de al doilea jucator.
  • Dupa ce optiunea este selectata, jucatorii se pot pregati de joc in timp ce bara de loading se incarca pana la 100%.
  • Jucatorii sunt reprezentati de cate o bara verticala, mingea de un pixel, obstacolele de patrulatere de diferite dimensiuni, iar elementul de pick-up de un cerc.
  • Jucatorii se deplaseaza doar pe axa OY, iar mingea pe XOY.
Desfasurarea jocului
  • La inceputul fiecarei runde se alege random in ce directie porneste bila.
  • Jucatorii trebuie sa isi apere peretele din spatele fiecaruia, astfel daca mingea o loveste se pune punct pentru adversar.
  • Pe parcursul jocului se afiseaza scorul curent si cate elemente de pick-up au colectat jucatorii. De asemenea, apar obstacole si elemente de pick-up, pe pozitii random din ecran.
  • Elementul de pick-up apare pe teren dupa o anumita perioada de timp dupa colectarea acestuia. Atunci cand un jucator ia un element de pick-up, atunci el are posibilitatea de a schimba directia de mers a bilei atunci cand vrea. Elementul este luat de un jucator daca bila a fost lovita de acesta inainte.
  • Obstacolul isi schimba pozitia si dimensiunea dupa ce este lovit de minge sau la inceperea unei noi runde. Atunci cand bila loveste obstacolul, acesta ricoseaza.
  • Jocul se termina atunci cand unul dintre jucatori ajunge la numarul maxim de puncte, selectat din meniu.
  • La sfarsit se afiseaza pe display castigatorul si se sarbatoresete castigul lui prin redearea unei piese la buzzer.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Resurse

pm/prj2022/cristip/pong_game_2.1653827069.txt.gz · Last modified: 2022/05/29 15:24 by elena.calcan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0