Table of Contents

Pong Game

Autor: Raluca Elena Aldea
Grupa: 334CB

Introducere

Proiectul consta in realizarea jocului Pong pe un ecran LCD. Jocul consta in doua palete ce se misca sus-jos. Scopul jocului este de lovi mingea si a-l face pe oponent sa rateze.

Exista modul de joc player vs player. Fiecare jucator va avea un joystick prin care isi poate controla paleta. La atingerea paletei, mingea ricoseaza si isi schimba directia de mers.

Pe parcursul jocului, in fiecare runda, va aparea pe ecran o putere (care va mari lungimea paletei), iar jucatorul care a atins ultimul mingea este cel care o colecteaza. Efectul bonusului inceteaza la sfarsitul rundei.

Un player primeste un punct in momentul in care adversarul rateaza mingea. Atunci cand unul dintre jucatori acumuleaza 3 puncte, jocul se termina si se poate incepe o noua runda.

Am ales implementarea acestui joc pentru ca este probabil printre primele jocuri pe care l-am jucat in copilarie si s-a potrivit perfect cu dorinta mea de a lucra la un proiect ce implica un ecran LCD.

Descriere generală


Fiecare jucator va avea propriul modul joystick prin care controleaza paleta. Asadar, sistemul are ca input comenzile jucatorilor, iar efectele acestora se regasesc in output, adica prin afisarea jocului pe display-ul atasat. In plus, terminarea unei runde si a jocului sunt anuntate prin sunete emise de buzzer.

Hardware Design

Lista de piese:

Am inceput proiectul prin conectarea ecranului la placuta Arduino. Dupa ce am invatat sa lucrez cu el, am desenat paletele si mingea. Urmatorul pas a fost sa conectez joystick-urile si sa fac paletele sa se miste. Dupa ce am reusit sa fac jocul functional, am conectat butonul ce reseteaza runda de joc si buzzer-ul care face zgomot la fiecare “gol” dat de oricare dintre jucatori, iar la finalul rundei am implementat coloana sonora de la jocul Pac Man. Proiectul fiind pe final, am ales sa il conectez la baterii si un switch pentru a nu fi dependent de calculator.

Schema proiectului:

Schema detaliata a conexiunii ecranului (sursa: https://mschoeffler.com/2019/06/20/arduino-tutorial-making-the-kmr-1-8-spi-tft-display-work/):

Proiectul:

Schema electrica:

Software Design

Am realizat proiectul in Visual Studio Code, cu ajutorul extensiei Arduino.

Proiectul este structurat in 6 fisiere.

Pentru a porni jocul este nevoie de activarea switch-ului. Jocul incepe prin desenarea celor doua placute, a mingii, a puterii care apare random pe ecran si a marginii ecranului. Mingea merge spre paleta dreapta. In momentul in care puterea este colectata, paleta ultimului jucator care a atins mingea este marita cu 20 de pixeli. La acumularea unui punct, scorul este afisat peste marginea ecranului (stanga sus sau dreapta jos), sub forma unei mingi. La acumularea a 3 puncte, ecranul se actualizeaza cu textul “Left player won!” sau “Right player won”, iar pe fundal se aude melodia tematica de la jocul Pac Man. La finalul cantecului, se poate apasa butonul de reset si se porneste o noua runda.

Rezultate Obţinute

Am obtinut un joc functional, iar procesul de dezvoltare a fost foarte placut.

Concluzii

A fost un proiect foarte distractiv de realizat. Am invatat sa lucrez cu o placuta arduino, sa folosesc un letcon, sa fiu atenta la conectarea firelor si mi-am indeplinit dorinta de a lucra cu un ecran LCD. Consider ca a fost de o dificultate medie si a ajutat la consolidarea cunostintelor acumulate la laborator.

Cele mai mare dificultate a fost realizarea coliziunilor cu paleta.

Download

Arhiva codului sursa:

ponggame_aldearalucae.zip

Galerie imagini si scheme:

galerieimagini_scheme.zip

Jurnal

Bibliografie/Resurse

Export to PDF