Table of Contents

Snake Game

Introducere

In acest proiect voi prezenta versiunea mea a jocului snake . Acesta va fi afisat pe un ecran din seria legendara Nokia LCD, pentru o mai buna afisare, dar si rezistenta la socuri. Vei putea sa-ti vizualizezi propiul highscore pentru a putea sa te motivezi sa depasesti acest obsatcol.Este un joc interactiv controlat prin intermediul butoanelor. Ramai in continuare pentru aceasta aventura fantastica!

Descriere generală

Pentru insufletirea jocului copilariei am afisat pe ecranul Nokia 5110 LCD, caracterul nostru, reprezentat de un pixel negru. Acesta in functie de scorul obtinut prin adunarea de puncte va creste in dimensiune cat mai mult. Scopul este colectarea a cat mai multe puncte si evitarea coliziunii intre capul si corpul personajului. Miscarea caracterului este realizata prin intermediul a 4 butoane: sus / jos / stanga / dreapta.

Hardware Design

Lista piese:

  1. Arduino UNO
  2. Nokia 5110 LCD
  3. 4 butoane push
  4. Breadboard
  5. Rezistori
  6. Buzzer

Schema electrica:

Software Design

Funcționalități: Meniu principal cu 3 opțiuni: Joacă, Setări și Scor maxim Meniu Setări: control al contrastului, iluminării și sunetelor jocului Sunete - redă tonuri la Game Over și la “mâncare” Scor maxim - păstrează cel mai mare scor

Am folosit biblioteca Adafruit's PCD8544 Nokia 5110 LCD. O poți instala din Managerul de bibliotecă. De asemenea, trebuie să fie asociată cu biblioteca Adafruit GFX.

Un simplu buuzer pentru a adauga dinamicitate jocului. Nu are nevoie de nicio bibliotecă. Funcția tone() este folosită pentru redarea notelor. Aceasta utilizează 2 pini Arduino: GND și un pin digital.tone(pin, frecvență,durată) Pinul este pinul digital utilizat, frecvența este frecvența tonului în hertzi.În proiectul meu, tone este redat atunci când șarpele interactioneaza cu mancarea și pe ecranul de game over.

Scorul maxim este păstrat în memoria Arduino (EEPROM), astfel că acesta va rămâne acolo indiferent daca este alimentat sau nu.

Ideea pentru mișcarea șarpelui este să muți primul element din secvență (coada șarpelui) în ultimul. Cu alte cuvinte, coada primește noile coordonate și devine capul șarpelui. Șarpele poate fi mutat pe întreagul ecran și nu va muri dacă lovește marginile. În cazul în care acest lucru se întâmplă, șarpele continuă pe cealaltă parte a ecranului în aceeași direcție. Sarpele este deseneat intr-un loop.

SnakeGame.h conține toate constantele publice, astfel încât să poți schimba lungimea maximă a șarpelui, contrastul inițial, lățimea și înălțimea ecranului etc.. Șarpele conține un tablou de blocuri. Fiecare bloc are propriile sale coordonate x și y. Mâncarea are, de asemenea, propriile sale coordonate. Pentru a randomiza coordonatele mâncării, am folosit funcția random() a Arduino-ului, cu randomSeed(analogRead(0)) în setup. GameManager este responsabil pentru logica jocului (desenarea obiectelor de joc, verificarea coliziunilor…). Este declarat în fișierul SnakeGame.ino.

Download

snakegame-_final.zip

Bibliografie/Resurse

Export to PDF