All pastes #2119922 Raw Edit

Untitled

public text v1 · immutable
#2119922 ·published 2012-02-19 10:43 UTC
rendered paste body
Pregled klasa u projektu
Game – Inicijalizuje SDL podsisteme i pokreće igru
Screen – Inicijalizuje OpenGL kontekst i služi za crtanje objekata i grafičku manipulaciju.
Collision – Statička klasa koja obezbeđuje detekciju kolizije i reakciju za pokretne objekte.
GameState – Apstraktna klasa koja predstavlja prototip stanja igre. GameState bi mogli biti Menu, Pause, Play stanja i slično.
GS_Play – GameState igre u toku. Poziva crtanje objekata koje treba prikazati, detekciju kolizije između njih i procesira ulazne komande.
GameObject – Apstraktna klasa koja predstavlja bilo koji objekat koji se može nacrtati u igri.
MovingObject – GameObject koji može da menja svoju poziciju. Brzina kretanja se računa balističkom integracijom, a trenje je srazmerno trenutnoj brzini.
Vessel – Klasa plovila. Plovila su objekti koje kontrolišu igrači, pa imaju metode vezane za komande. Predviđeno je da mogu postojati različita plovila, sa različitim karakteristikama (sprajt, implementacija komandnih metoda... )
Frigate – Frigata koju kontroliše igrač i koja može da puca.
Projectile – Klasa projektila. Projektile mogu da izbacuju drugi GameObject-i i predviđeno je da mogu da postoje različiti projektili.
Cannonball – Primer projektila. Lansira ga Frigate pri izvršenju metode primary().

Detekcija kolizije
Detekcija kolizije se zasniva na separating axis teoremi i radi na konveksnim poligonima. Svaki objekat sadrži listu koordinata temena poligona (hitbox) koji predstavlja granice kolizije objekta. Prema SA teoremi, tela se seku (u koliziji su) kada se sve njihove projekcije seku. Drugim rečima, ako postoji praznina između projekcija oba tela na neku osu, ta tela nisu u koliziji. Dovoljno je za svaki par povezanih temena proveriti projekciju tela na njihovu normalu da bismo videli da li je došlo do sudara.