This shows you the differences between two versions of the page.
pm:prj2022:ncaroi:meteor_dodge [2022/05/27 20:45] bogdan.tudorache99 |
pm:prj2022:ncaroi:meteor_dodge [2022/05/27 21:32] (current) bogdan.tudorache99 |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <note tip> | ||
+ | * Student: Tudorache Bogdan-Mihai | ||
+ | * Grupa: 334CA | ||
+ | * Mail: bogdanmihait10@gmail.com | ||
+ | </note> | ||
+ | |||
====== Meteor Dodge ====== | ====== Meteor Dodge ====== | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
Line 60: | Line 67: | ||
Exista 2 tipuri de coliziuni: **laser-meteorit** si **nava-meteorit**. La coliziunile laser-meteorit, se iau la rand meteoritii existenti si se verifica daca laserul atinge vreunul din ei. La coliziunile nava-meteorit, se iau la rand toti meteoritii si se verifica daca ating nava. In cazul incare nava atinge 3 meteoriti, jocul se termina. | Exista 2 tipuri de coliziuni: **laser-meteorit** si **nava-meteorit**. La coliziunile laser-meteorit, se iau la rand meteoritii existenti si se verifica daca laserul atinge vreunul din ei. La coliziunile nava-meteorit, se iau la rand toti meteoritii si se verifica daca ating nava. In cazul incare nava atinge 3 meteoriti, jocul se termina. | ||
- | In a treia faza se sterg entitatile din pozitia anterioara. Acest proces este optimizat pe cat posibil, pentru ca nici placa arduino nu are o putere de calcul foarte mare, si nici display-ul nu are cele mai bune specificatii, deci nu se poate face flush la tot ecranul, dupa care sa desenezi din nou toate entitatile pe ecran, pentru ca ar merge foarte incet. De aceea, pentru laser si meteoriti este stearsa doar pozitia anterioara (care este usor de calculat/prevazut), iar pozitia navei se sterge doar daca in acea iteratie de game loop nava s-a miscat. | + | In a treia faza se sterg entitatile din pozitia anterioara. Acest proces este optimizat pe cat posibil, pentru ca nici placa arduino nu are o putere de calcul foarte mare, si nici display-ul nu are cele mai bune specificatii, deci nu se poate face flush la tot ecranul, dupa care sa desenezi din nou toate entitatile pe ecran, pentru ca ar merge foarte incet. De aceea, pentru laser si meteoriti este stearsa doar pozitia anterioara (care este usor de calculat/prevazut), iar pozitia anterioara a navei se sterge doar daca in acea iteratie de game loop nava s-a miscat. |
In faza finala din game loop se deseneaza toate entitatile la noile lor pozitii. Nava si laser-ul au niste desene mai interesante (nava este desenata pixel cu pixel, in total vreo 100 linii de cod), insa meteoritii sunt desenati prin niste simple cercuri, tot din motive de performanta. | In faza finala din game loop se deseneaza toate entitatile la noile lor pozitii. Nava si laser-ul au niste desene mai interesante (nava este desenata pixel cu pixel, in total vreo 100 linii de cod), insa meteoritii sunt desenati prin niste simple cercuri, tot din motive de performanta. | ||
Line 80: | Line 87: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | In final a iesit un joc distractiv, bine pus la punct de tip arcade. Singurul lucru de care nu sunt foarte mandru este cable management-ul, dar |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | din acest punct de vedere nu am foarte multe optiuni. |
- | </note> | + | |
- | ===== Concluzii ===== | + | ===Media=== |
- | ===== Download ===== | + | {{ :pm:prj2022:ncaroi:tudorache.bogdan:meteor_dodge_2.jpeg?500 |}} |
- | <note warning> | + | {{ :pm:prj2022:ncaroi:tudorache.bogdan:meteor_dodge_1.jpeg?500 |}} |
- | 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**. | + | {{ :pm:prj2022:ncaroi:tudorache.bogdan:meteor_dodge_5.jpeg?300 |}} |
- | </note> | + | |
- | ===== Jurnal ===== | + | {{ :pm:prj2022:ncaroi:tudorache.bogdan:meteor_dodge_4.jpeg?300 |}} |
- | <note tip> | + | {{ :pm:prj2022:ncaroi:tudorache.bogdan:meteor_dodge_3.jpeg?300 |}} |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | ===== Concluzii ===== |
+ | |||
+ | Mi-a facut foarte mare placere sa lucrez la acest proiect. Am construit ceva de care sunt foarte multumit si am invatat multe despre programarea pe device-uri de mica putere, aprofundand in acelasi timp notiunile studiate in cadrul laboratoarelor. | ||
+ | |||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2022:ncaroi:tudorache.bogdan:334ca_tudorachebogdanmihai_meteordodge.zip|}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://www.youtube.com/watch?v=72SrQuVU3Ww|Video-ul folosit pentru conectarea ecranului LCD SPI]] |
+ | * [[https://www.arduino.cc/reference/en/libraries/tft/|Documentatie biblioteca TFT]] | ||
+ | * [[https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection|Documentatie coliziuni]] | ||
+ | * Laboratoarele de pe ocw (in special cele cu timere si intreruperi) | ||
+ | * https://cleste.ro/ | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||