projekat c tetris n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Projekat: C++ Tetris PowerPoint Presentation
Download Presentation
Projekat: C++ Tetris

Loading in 2 Seconds...

play fullscreen
1 / 30

Projekat: C++ Tetris - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

Projekat: C++ Tetris. Fakultet za poslovnu informatiku Predmet: Uvod u programiranje II Studenti: Željko Bareta 25/2005 Miljan Simonović 54/2005 Srboljub Stojadinović 73/2005 Bojan Prekić 89/2005 Biljana Miličić 118/2005. Ovo je prezentacija na š eg projekta: C++ Tetris.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Projekat: C++ Tetris' - sarai


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
projekat c tetris

Projekat: C++ Tetris

Fakultet za poslovnu informatiku

Predmet: Uvod u programiranje II

Studenti:

Željko Bareta 25/2005

Miljan Simonović 54/2005

Srboljub Stojadinović 73/2005

Bojan Prekić 89/2005

Biljana Miličić 118/2005

slide2
Ovo je prezentacija našeg projekta: C++ Tetris.
  • Program je napisan u C++ kao Win32 aplikacija, koristeći Windows Graphics Device Interface (GDI).
  • Dalje sledi upoznavanje sa kodom.
slide3

- Program se sastoji od 3 fajl-a: main.cpp, bitmapobject.cpp, bitmapobject.h

  • Počećemo sa main.cpp fajlom, sa nekim osnovnim definicijama.
slide4

- Sledi izrada veličine svakog tile-a, kao i same mape.

- Kao i varijable za budući bitmap (potrebno nam je 10 boja od kojih se jedna ne iscrtava).

slide5

- Ovde inicijalizujemo sve potrebne funkcije.

- Zatim slede globalne varijable. Application handle i main window handle.

slide6

Napravićemo niz koji sadrži blokove koji se nalaze u području igre. Napravićemo strukturu za blok (piece), sadržaće dve promenljive, za trenutni i nailazeći blok.

- Ovde privremeno napuštamo main.cpp.

slide7

Bitmapobject.h

  • Moramo napraviti klasu za bitmap objekat.
  • Potreban nam je handle za izlazni uređaj.
slide9

- Ovde prelazimo na bitmapobject.cpp

Pravimo constructor / destructor.

slide13

- Zatim se izvršava HDC konverzija, i prave se funkcije za visinu / širinu.

  • Nakon ovoga se vraćamo u main.cpp, gde nastavljamo rad sa globalnim
  • varijablama.
slide14

- Vraćamo se u main.cpp. Definišemo po jednu promenljivu klase BitMapObject za mapu i za blokove.

slide15

- Sada pravimo hendler poruka. Windows šalje poruke prozoru sve vreme. Neke od tih informacija su nam bitne, a neke ne. Ovaj hendler služi za usmeravanje tih poruka.

slide18

- Koristimo privremeni pravougaonik(RECTrcTemp) koji se koristi za čišćenje prozora. Zatim kreiramo sliku mape i čistimo je na sličan način. Na kraju učitavamo bitmap fajl koji smo sami napravili i koji služi da oživi grafiku u igri. Ubačena je i funkcija GameDone za čišćenje, koja se ovde ne koristi, ali je ostavljena zarad eventualnih budućih proširenja 

slide20

- Pravimo funkciju NewGame. Postavljamo start_time, inicijalizujemo Map niz, i kazemo mu da ubaci novi blok.

slide22

- DrawMap funkcija iscrtava toolbar, pa sledeći blok, pa posle toga blokove koji su već tu i blok kojim igrač trenutno upravlja.

slide23

- NewBlock funkcija, pravi novi blok. Generiše sledeći (preview) blok, i stavlja ga na mesto trenutnog kada se sa ovim završi. Za početno pokretanje igre moramo da odradimo case generaciju za svaki blok ponaosob. Ovde nismo prikazali celu case naredbu zato jer je za svaku figuru slična.

slide24

0 1 2 3

0

1

2

3

case 1: //Box!

{

sPiece.size[1][1]=TILEBLUE;

sPiece.size[1][2]=TILEBLUE;

sPiece.size[2][1]=TILEBLUE;

sPiece.size[2][2]=TILEBLUE;

}break;

0 1 2 3

0

1

2

3

case 2: //Pyramid!

{ sPiece.size[1][1]=TILESTEEL; sPiece.size[0][2]=TILESTEEL;

sPiece.size[1][2]=TILESTEEL; sPiece.size[2][2]=TILESTEEL;

}break;

slide25

- RotateBlock funkcija. Copy & rotate u privremenu vrednost, proveri za kolizije, i onda vraća u originalnu vrednost.

slide26

- Move funkcija. Provera kolizije, zatim pomeranje na novo mesto, ili započinjanje nove igre ako se pređe granica područja igre.

slide28

- RemoveRow funkcija. Jednostavno uklanja red ako je popunjen skroz, i spušta ostale dole.

- Ovde se završava kod, uživajte u igranju!