Ajde ovako (mada su ti sve ovo isto rekli i tosa i bkaradzic):
Klasa Actor (agent, character, sta god) ima podatke o sebi koji su vezani za gameplay (energija, iskustvo, sta god...),
kao i minimalan, a dovoljan broj informacija o crtanju sebe (ime/id texture gde su mu frejmovi, trenutna pozicija na nivou,
trenutno stanje (trci, skace, puca, umro je...) i slicno), kao i podataka vezanih za "fiziku" (sirina, visina, masa...).
Klasa TextureManager (ili slicno) se bavi ucitavanjem i drzanjem textura u memoriji, kao i njihovih id-ova/imena, a od nje
render uzima i crta iste. Potrebne texture bi trebalo da budu popisane u fajlu koji predstavlja nivo igre, a treba ti i neki
fajl gde su popisane osnovne, uvek potrebne texture.
Klasa Camera uzima poziciju od lika (stvari, cega kod) kog trenutno pratimo i od nivoa uzima samo vidljive delove ekrana
(ili samo gleda gde su gornji levi i donji desni tajl pozadine) i vidljive likove u trenutnom frejmu.
Klasa Render uzima podatke od kamere (koje tajlove treba da iscrta), od likova koji se vide sve podatke
potrebne za render (koji frejm je aktivan, gde su na ekranu, koji efekat je aktivan i u kom je frejmu...), a od texturemanagera
texture koje treba da iscrta i onda samo redom nacrta sve sta treba.
Samo apdejtuj sve ovo (osim texture managera koji na startu igre/nivoa ucita sta mu treba i samo daje pointere na
texture kad mu render trazi) u svakom (ili kako ti vec za koga odgovara) frejmu i to bi bilo otprilike to (fali jos gui i nesto
sto bi brinulo o samoj igri (o neprijateljima i skriptama...), ali to je druga prica).
Sta je fora? Actor nema pojma da li ga renderuje directX, openGL ili nesto trece, samo zna gde je i kako mu se textura
zove. Camera takodje nema pojma o nacinu crtanja. Ovako su Texture Manager i Render jedini koji su vezani za nacin
crtanja i ukoliko se sa openGL-a prelazi na directX ili nesto drugo, samo se oni menjaju. Takodje mozes sebi jasno da
nacrtas na papiru koja klasa je vezana sa kojom i kako.
Ukoliko bi Actor drzao svoju texturu i pri apdejtu sam gledao da li je u ekranu, pa zatim crtao sam sebe, onda on ne bi
bio odvojen od crtanja i bilo kakve promene u crtanju bi zahtevale promene i na njemu. To sve postaje veoma konfuzno
kad imas gomilu razlicitih klasa koje se manje/vise crtaju isto ili slicno (propovi (drvece) su pozadina, ali imaju dosta
stvari srodnih sa likovima, iako se ne krecu po nivou i vezani su za tajl gde su postavljeni na nivou, mogu da imaju animaciju
i efekte(kad se zapali) recimo).
Mass murder ain’t just painless,
Now we’ve made it cute.
The Church Of The Holy Transistor