140 likes | 387 Views
Projekat iz predmeta UVOD U PROGRAMIRANJE II. Igra Battle Office. Studenti: Bojan Kosanović 22/2005 Marko Apostolovič 28/2005. Jasmina Raković 31/2005 Miroslava Jeremić 49/2005 Anita Higl 224/2005. Uvod u Windows programiranje. Počinje i završava se sa Win32 API-jem
E N D
Projekat iz predmeta UVOD U PROGRAMIRANJE II Igra Battle Office Studenti: Bojan Kosanović 22/2005 Marko Apostolovič 28/2005 Jasmina Raković 31/2005 Miroslava Jeremić 49/2005 Anita Higl 224/2005
Uvod u Windows programiranje • Počinje i završava se sa Win32 API-jem • Windows programi su vođeni događajima • Windows je namerno konstruisan tako da nas drži podalje od uređaja • Programi se u određenoj meri oslanjaju na resurse • Ogroman broj tipova podataka koji se pišu velikim slovima • Preporučuje se upotreba mađarske notacije (int iCeoBroj) • WinMain( ) • #include <windows.h>
Mehanizam igre • Sadrži zajedničke karakteristike više video-igara • Omogućava skrivanje delova koda koji je specifičan za Windows i koji nema ništa zajedničko sa samom video-igrom • Osnovni događaji koji se mogu smestiti u mehanizam: • Inicijalizacija • Pokretanje • Završetak • Aktiviranje • Deaktiviranje • Iscrtavanje • Ciklus
Zaglavlje mehanizma igre BattleOffice sadrži: • Deklaraciju Windows funkcija WinMain( ) i WndProc() • Deklaraciju funkcija mehanizma igre koje su definisane u BattleOffice.cpp • Klasu mehanizma igre:
Rad sa bitmapama • GDI (GraphicsDeviceInterface) za ostvarivanje komunikacije programa i fizičkih grafičkih uređaja • Boje se predstavljaju pomoću crvene, zelene i plave (RGB) COLORREF green = RGB(0, 255, 0); • Svako crtanje u Windowsu se obavlja u kontekstu uređaja. • Struktura bitmape: • Zaglavlje • Tabela boja • Podaci slike
U Bitmap.h nalazi se struktura BITMAPINFO_256 u koju se zapisuje zaglavlje i tabela boja bitmape sa 256 boja. struct BITMAPINFO_256 { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[256]; };
Resource.h definiše jedinstvene identifikatore resursa bitmapa. • Identifikator resursa bitmape se koristi u resursnom skriptu BattleOffice.rc • Resursi se obuhvataju pomoću resursnog tipa BITMAP IDB_GUY1 BITMAP “Guy1.bmp”
Kontrolisanje igre pomoću miša • Poruke miša koje se u Window programima koriste za obaveštavanje o događajima miša: WM_MOUSEMOVE-bilo koje kretanje miša WM_LBUTTONDOWN-pritisnut levi taster miša WM_LBUTTONUP-opušten levi taster miša WM_RBUTTONDOWN-pritisnut desni taster miša WM_RBUTTONUP-opušten desni taster miša WM_MBUTTONDOWN-pritisnut srednji taster miša WM_MBUTTONUP-opušten srednji taster miša
Animiranje pomoću sprajtova • Svaki grafički objekat se zove sprajt i ima poziciju koja se tokom vremena menja. • Dodavanje dubine pomoću Z-uređenja • Otkrivanje sudara objekata • Koristimo klasu Sprite za prikazivanje jednog sprajta koji koristi klasu Bitmap za prikazivanje svoje slike. • U Sprite.h definisan je tip podataka BOUNDSACTION
Klasa Sprite ima nekoliko konstruktora koji prihvataju različite količine informacija prilikom pravljenja sprajta. Klasa sadrži i tri opšta metoda koja su izuzetno važna: Update( )-ažuriranje Draw( )-crtanje sprajta IsPointInside( )-testiranje pogotka
U izvornom kodu BattleOffice.cpp imamo: • Definiciju funkcija mehanizma igre kao što su: Inicijalizacija Startovanje Kraj igre Aktiviranje Deaktiviranje Iscrtavanje Ciklus Provera levog tastera miša Pomeranje miša
Kod je napravio Majkl Morison