Jump Game

Autor: Andrei-Alexandru Jelea

Introducere

Proiectul consta in crearea unui joc in care scopul este evitarea obstacolelor prin salt pentru obtinerea unui punctaj cat mai mare. Interactiunea jucatorului are loc prin intermediul unui buton, iar reprezentarea jocului se face cu ajutorul unui ecran LCD.

Descriere generală

Jucatorul trebuie sa sara peste obstacolele ce vor aparea din fata si va primi puncte pe masura ce inainteaza. Obstacolele vin din partea dreapta, iar scorul este afisat in coltul din dreapta sus.

Schema bloc

Hardware Design

Lista de componente

  • Arduino UNO
  • LCD 20×4
  • Breadbord
  • Rezistor 220ohm
  • Buton 12mm
  • Fire

Schema electrica

Software Design

Descriere software:

  • Mediul de dezvoltare: Arduino IDE
  • Biblioteca folosita: LiquidCrystal.h
  • Logica implementarii:

Actiunea jocului are loc doar pe primele 2 linii si primele 16 coloane ale LCD-ului. Jucatorul se va afla mereu pe coloana 1 si pe liniile 1 sau 2(daca alearga este pe linia 2, iar daca se afla in saritura este pe linia 1). La un moment de timp, fiecare bloc(care are 5×8 = 40 biti) din cele 2 x 16 = 32 va avea o configuratie anume din urmatoarele:

  • Bloc obstacol complet
  • Bloc obstacol inceput
  • Bloc obstacol sfarsit
  • Bloc gol
  • Bloc jucator in alergare
  • Bloc jucator in saritura completa(linia1)
  • Bloc jucator la jumatatea sariturii, partea de jos(linia2)
  • Bloc jucator la jumatatea sariturii, partea de sus(linia1)

Inregistrarile tuturor configuratiilor se realizeaza prin functia createChar, din biblioteca LiquidCrystal.h, care asociaza un index fiecarei configuratii de 5×8 biti si astfel, afisarea se va face cu functia print, folosind ca argument doar indexul respectiv. Functiile folosite sunt:

  • init_graphics: se initializeaza configuratiile posibile si se memoreaza cu functia createChar; se configureaza blocurile initiale, toate fiind de tipul “Bloc gol”.
  • slide_blocks: functie pentru deplasarea in stanga a obstacolelor
  • draw_hero: functie ce determina configuratia blocurilor de pe coloana eroului pe baza actiunii acestuia si printeaza toate blocurile; de asemenea, se verifica si daca are loc coliziunea jucatorului cu obstacolele.
  • setup: se initializeaza pinii si tipurile de configuratii
  • loop: este implementata logica jocului - la fiecare frame se apeleaza functiile descrise de mai sus

Rezultate obtinute

Concluzii

Consider ca a fost un proiect foarte interesant, din care am avut multe de invatat, atat pe partea de hardware cat si pe cea de software si rezultatul este unul satisfacator.

Jurnal

  • Etapa1

Alegerea temei proiectului

  • Etapa2

Achizitionarea pieselor necesare si a ustensilelor utilizate pentru lipirea pinilor LCD-ului

  • Etapa3

Asamblarea efectiva a partii hardware si scrierea codului

Download

Demo

Bibliografie si Resurse

pm/prj2021/avaduva/jumpgame.txt · Last modified: 2021/06/03 10:08 by andrei.jelea
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