Table of Contents

LCD Endless Runner

  • Student: Tănăsescu Robert-Andrei
  • Grupa: 336CC
  • Adresa de e-mail contact: robert.tanasescu@stud.acs.upb.ro

Introducere

Ce face proiectul ?

Proiectul implementează un joc de tip Endless Runner, unde jucătorul trebuie să se ferească de obstacole pentru a putea avansa. Din punctul de vedere al controlului, player-ul poate efectua următoarele acțiuni :

Jocul va fi afișat pe un LCD 2 linii x 16 coloane și va avea trei metode independente de control :

Player-ul se va afla mereu pe prima coloană și va avea posibilitatea să-și schimbe linia, practic vor exista două lane-uri TOP si BOT. Pentru a oferi și alt tip de feedback înafară de cel vizual, proiectul implementează și generarea de sunete folosind un buzzer.
Pentru a face experiența mai intuitivă, se vor folosi 3 LED-uri conectate unul lângă celălalt și vor fi aprinse atâtea câte vieți mai are player-ul și pe dotMatrix se va aprinde un led pentru fiecare obstacol distrus, iar în momentul când matricea “se umple” aceasta se resetează iar player-ul primește o viață în plus (dacă numărul de vieți < 3) sau un bonus la scor (dacă numărul de vieți == 3). În momentul în care jucătorul are 0 vieți rămase, jocul se oprește, afișează “GAME OVER” și scorul obținut.

Scopul proiectului

Scopul proiectului este să ofere o modalitate de recreere a unui individ și să trezească spiritul competitiv din orice jucător.

Ideea de la care s-a pornit

Ca și sursă de inspirație am avut jocul cu dinozaurul din Google Chrome. Am pornit de la ideea de a crea un joc pe un ecran LCD și am ajuns la concluzia că un joc asemnănător cu cel din Google Chrome este alegerea perfectă deoarece spațiul de pe LCD este suficient pentru acest tip de joc.

Utilitatea proiectului

Consider că proiectul este util deoarece învât cum se realizează legătura dintre componente hardware și software când vine vorba de un joc video. În plus, acest joc testează viteza de reacție , coordonarea și consider că acest tip de joc dacă este făcut cum trebuie, nu poate deveni plictisitor și stârnește ambiția unui om de a avansa cât mai mult.

Descriere generală

Schema bloc

Hardware Design

Lista de componente este :

Schema electrică

Software Design

În ceea ce privește implementarea software a proiectului, am gândit proiectul ca având 3 stări posibile :

Codul proiectului se află în fișierul lcd_runner.ino. În antetul fișierului am definit pinii pentru fiecare componentă legată la Arduino și am definit câteva variabile globale.

Biblioteci utilizate

În acest proiect au fost utilizate 4 biblioteci externe :

Descriere logistică

În funcția setup setez modurile pentru fiecare pini utilizați și inițializez LCD-ul, Dotmatrix-ul și array-urile pentru obstacole.
În funcția loop avem jocul efectiv, și pentru a face diferența dintre cele 3 stări ale jocului folosim un flag numit GAME_OVER care are următoarea semnificație :

În ansamblu, în funcția loop tratez coliziunile dintre player și obstacole, distrugerea, generarea și desenarea pe LCD a obstacolelor, desenarea player-ului.

Reguli joc

În ceea ce privește regulile jocului acestea sunt următoarele :

Rezultate Obținute

Concluzii

În concluzie, consider că acest proiect m-a ajutat să descopăr și să experimentez legătura dintre hardware și software, văzând mai în detaliu cum trebuie implementate anumite aspecte ale unui controller, de exemplu (joystick și butoane) și ale unui joc. În plus, fiind un proiect fizic, am putut să pun în aplicare noțiunile învățate la laborator.

Download

Jurnal

25/05/2021 - Adaugare README și update cod arduino
22/05/2021 - Update cod arduino
20/05/2021 - Upload videoclip Youtube și finalizare documentație

Bibliografie/Resurse