Dino Game ­čŽľ

Autor: Alexandra-Petrina Ispas
Grupa: 336CA

Introducere

Descriere

Proiectul reprezintă o implementare a jocului dezvoltat de Google pentru browser-ul Google Chrome. Acesta apare în momentul în care nu există conexiune la internet.
Jucătorul este reprezentat de caracaterul Lonely T-Rex creat de Sebastien Gabriel, Alan Bettes și Edward Jung.

Flow-ul jocului

Jocul începe printr-un sunet reprezentativ, iar la apăsarea unui buton se afișează harta.
Personajul se deplaseaz─â ├«ncontinuu de-a lungul h─âr╚Ťii, iar la ap─âsarea butonului sare. Scopul este ca juc─âtorul s─â supravie╚Ťuiasc─â c├ót mai mult timp posibil, evit├ónd toate obstacolele ce pot s─â apar─â pe parcurs.

Jocul con╚Ťine trei moduri, cu urm─âtoarele func╚Ťionalit─â╚Ťi:

  • primul mod reprezint─â jocul normal, unde utilizatorul de╚Ťine controlul complet
  • al doilea mod este unul ghidat ├«n care i se sugereaz─â utilizatorului c├ónd ar trebui s─â sar─â ├«n func╚Ťie de lumina unor LED-uri astfel:
    • dac─â LED-ul ro╚Öu este aprins, trebuie s─â sar─â
    • dac─â LED-ul verde este aprins, nu exist─â niciun obstacol ├«n fa╚Ťa sa, deci ar trebui s─â-╚Öi men╚Ťin─â pozi╚Ťia
  • al treilea mod este unul automat ├«n care utilizatorul nu mai interac╚Ťioneaz─â cu jocul

├Än cazul ├«n care personajul atinge un obstacol, jocul se ├«ncheie, eveniment ce este semnalat ini╚Ťial prin sunetul acesta emis de buzzer, urmat de afi╚Öarea scorului pe ecranul LCD-ului.

Utilitate

Consider că acest joc interactiv este o modalitate de a aprofunda conceptele de la laboratorul de PM și de a pierde timpul.

Schema bloc

Hardware Design

Componente

Nume Num─âr Piese
Arduino 1
LCD I2C 1
Pushbutton 2
Piezo 1
Rezisten╚Ť─â 100 ÔäŽ 1
Rezisten╚Ť─â 220 ÔäŽ 3
LED 2
Breadboard 1

Schema Electric─â

Circuit Design

Software Design

Mediul de dezvoltare:

Libr─ârii folosite:

  • LiquidCrystal_I2C care introduce urm─âtoarele func╚Ťionalit─â╚Ťi:
    • lcd.begin() Ôćĺ ini╚Ťializeaz─â LCD-ul
    • lcd.clear() Ôćĺ gole╚Öte ecranul LCD-ului de carcatere
    • lcd.print() Ôćĺ afi╚Öeaz─â caractere pe ecranul LCD-ului

├Än cadrul implement─ârii mi-am definit mai multe func╚Ťii, printre care:

  • drawDinoJump() - aceasta simuleaz─â s─âritura pe care o face caracterul jocului peste un obstacol
  • drawDinoWalk() - aceasta modific─â aspectul caracterului pentru a conferi impresia unei deplas─âri continue de-a lungul h─âr╚Ťii
  • startGame() - func╚Ťie care face ini╚Ťializ─ârile necesare pentru LCD
  • graphics() - func╚Ťie care deseneaz─â caracterul
  • objectRandom() - aceast─â func╚Ťie insereaz─â un nou obiect ╚Öi face transla╚Ťia celor existente pentru a face lor unui nou obstacol ╚Öi pentru a crea iluzia de mi╚Öcare
  • detect() - func╚Ťie care detecteaz─â coliziunile dintre caracter si obstacole
  • startGameMusic() - aceast─â func╚Ťie reproduce pe buzzer melodia de la ├«nceputul jocului
  • over() - aceast─â func╚Ťie reproduce pe buzzer melodia de la finalul jocului ╚Öi afi╚Öeaz─â scorul final
  • get_mode() - aici se stabile╚Öte modul de joc ├«n func╚Ťie de valoarea numeric─â a variabilei ÔÇťmodeÔÇŁ

Rezultate Obţinute

Demo cu func╚Ťionalitatea proiectului

Concluzii

Proiectul m-a ajutat s─â aprofundez conceptele studiate la laboratoarele de PM, s─â ├«n╚Ťeleg importan╚Ťa protocolului I2C, dar cea mai mare provocare a reprezentat-o partea de software.

Download

Arhiva ce con╚Ťine codul-surs─â al proiectului, precum ╚Öi libr─âriile necesare poate fi desc─ârcat─â de aici.

Jurnal

  • 18.04.2022 Ôćĺ alegerea proiectului
  • 21.04.2022 Ôćĺ schema bloc
  • 26.04.2022 Ôćĺ implementarea ├«n Tinkercad
  • 25.05.2022 Ôćĺ achizi╚Ťionare piese
  • 26-27.05.2022 Ôćĺ implementare

Bibliografie/Resurse

pm/prj2022/avaduva/alexandra.ispas.txt ┬Ě Last modified: 2022/06/13 23:11 by alexandra.ispas
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