This is an old revision of the document!


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 diversele obstacole ce vor aparea din fata si va primi puncte pentru fiecare obstacol evitat. Pe masura ce acesta inainteaza, obstacolele vin din ce in ce mai repede. Jocul se termina cand jucatorul obtine 1000 de puncte.

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 cofiguratii 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 initiaza 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 pe baza actiunii jucatorului si le printeaza; 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 de mai sus

Rezultate obtinute

Concluzii

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

Bibliografie si Resurse

pm/prj2021/avaduva/jumpgame.1622667328.txt.gz · Last modified: 2021/06/02 23:55 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