Table of Contents

Dinosaur Game Chrome

Introducere

Proiectul este insiprat din jocul care apare pe Google Chrome atunci cand nu avem acces la internet si este un endless runner cu un dinosaur care trebuie sa sara peste obstacole. Scopul proiectului este realizarea unui endless runner similar.

Prezentarea pe scurt a proiectului vostru:

  • ce face
  • care este scopul lui
  • care a fost ideea de la care aţi pornit
  • de ce credeţi că este util pentru alţii şi pentru voi

Descriere generală

Acest sistem include un Arduino UNO, conectat la un ecran LCD, un buton si un LED. Jocul este similar cu cel disponibil în browser atunci când conexiunea la internet este întreruptă. Jucătorul controlează un personaj care trebuie să sară peste obstacole generate aleatoriu. Fiecare obstacol trecut cu succes aduce un punct.

LED indică nivelul de dificultate, dupa un anumit timp acesta se va aprinde si va face jocul mai greu. Un potențiometru este utilizat pentru ajustarea contrastului ecranului LCD.

O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.

Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html

Hardware Design

Lista componente:

  1. Arduino UNO
  2. Ecran LCD
  3. Buton
  4. LED
  5. Potentiometru
  6. Rezistente 220k si 10k
  7. Fire tata-tata, mama-tata

Schema Electrica:

Software Design

Display-ul LCD și pinii pentru buton și LED sunt configurați. Se alege aleatoriu un personaj între dinozaur și cavaler, iar caracterul este creat pe display-ul LCD.

Codul verifică dacă jocul s-a terminat. Dacă da, așteaptă apăsarea butonului pentru restart. Starea butonului este citită pentru a detecta dacă jucătorul a apăsat pentru săritura personajului. Timpul actual este verificat pentru a determina dacă săritura personajului trebuie să se termine. Poziția obstacolului este actualizată periodic, iar obstacolul se deplasează spre stânga.

Personajul este afișat în poziția corectă (pe sol sau în aer, în funcție de starea de săritură). Obstacolul este desenat pe ecran în poziția sa curentă.

Dacă obstacolul ajunge la poziția personajului și acesta nu sare, se detectează o coliziune, jocul se termină și se afișează mesajul “CRASH!” împreună cu scorul. Dacă obstacolul trece de personaj, scorul crește și, dacă atinge 10 puncte, LED-ul se aprinde. Viteza obstacolelor crește după atingerea a 10 puncte pentru a crește dificultatea jocului.

Dacă jocul s-a terminat, apăsarea butonului va reseta jocul, alegând din nou aleatoriu între dinozaur și cavaler și repornind totul de la zero.

Rezultate Obţinute

demo: https://www.youtube.com/watch?v=K1f1O7SKSa4

Concluzii

A fost un proiect fun, partea de soft a fost considerabil mai greu de implementat decat partea de hard. Ma bucur ca il pot folosi mai departe sa ma joc ceva atunci cand raman fara net.

Download

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.

Jurnal

Nu am intampinat multe probleme in cadrul acestui proiect. Singura chestie a fost ca mi s-a ars led-ul pe care il foloseam pe ultima suta de metri si am fost nevoit sa folosesc led-ul de pe placuta.

Bibliografie/Resurse

https://www.tinkercad.com/dashboard

https://www.arduino.cc/en/Guide/ArduinoUno