Autor: Bogdan Draghici
Proiectul realizat consta in realizarea jocului pacman utilizand placa Arduino, ecran LCD, butoane, breadboard, fire de legatura si un switch. Scopul acestui proiect are rolul de a demonstra practic informatiile si conceptele invatate la laborator.
Pentru joc, voi folosi o placa Arduino, un ecran LCD, 5 butoane, un breadboard, fire de legatura si switch. Schema bloc:
Pentru lucrul cu LCD-ul am folosit o biblioteca Adafruit, pt care am importat diverse imagini in cod hexa (bitmap pt harta, pacman si fantoma). Astfel puteam afisa rapid imaginile. O dificultate aparuta a fost verificarea coliziunii cu zidurile, deoarece lucrul pe biti ducea la rezultate eronate, iar pastrarea unei matrici cu zonele sigure de deplasare ar fi supra incarcat memoria. Asa ca am analizat matricea zonelor sigure si am transpus-o intr-o functie de verificare a unei pozitii x-y pe intervale.
Ca variabile am tinut minte date despre jucator, fantoma si banuti, dar si despre starea jocului si timpul power-upurilor. Se face input buffering pt controlul pacmanului, astfel incat schimbarea directiei sa fie rapida. Coliziunea intre pacman-fantoma si pacman-coin se face simplu prin distanta. Animatia personajelor depinde de 2 frameuri ce se schimba in functie de timp.
Codul se poate gasi aici: pacman.rar
Jocul este functional, desi nu este implementat cum imi doream original (lcd-ul este diferit si mai mic, iar controlul este pe butoane in loc de joystick). Optimizarea pentru specificatiile arduinoului a fost partea cea mai interesanta a proiectului.
Documentatie pdf:
https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/pingpong?do=export_pdf
Link pagina:
Bibliotecile Adafruit GFX si SSD1306