This shows you the differences between two versions of the page.
pm:prj2021:abasoc:pingpong [2021/06/02 22:49] iulia.popa [Descriere generală] |
pm:prj2021:abasoc:pingpong [2021/06/02 23:37] (current) iulia.popa [Software Design] |
||
---|---|---|---|
Line 15: | Line 15: | ||
* placa Arduino UNO | * placa Arduino UNO | ||
* ecran LCD | * ecran LCD | ||
- | * doua butoane | + | * 5 butoane |
* breadboard | * breadboard | ||
- | * rezistente | + | * switch |
* fire de legatura | * fire de legatura | ||
Schema electrica: | Schema electrica: | ||
- | {{:pm:prj2021:abasoc:pingpongelectric.jpg?600|}} | + | {{:pm:prj2021:abasoc:whatsapp_image_2021-06-02_at_22.45.20.jpeg?700|}} |
====== Software Design ====== | ====== Software Design ====== | ||
- | TODO | ||
+ | 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: {{:pm:prj2021:abasoc:pacman.rar|}} | ||
====== Rezultate Obținute ====== | ====== Rezultate Obținute ====== | ||
- | TODO | ||
+ | https://youtu.be/YKhGA1etdGc | ||
====== Concluzii ====== | ====== Concluzii ====== | ||
- | TODO | + | 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. |
====== Download ====== | ====== Download ====== | ||
Line 43: | Line 56: | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
- | TODO | + | Bibliotecile Adafruit GFX si SSD1306 |