Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 1.2.2011, 19:29   #1
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Game Engine, objašnjenje?

Znam sto je game engine i cemu sluzi, sad me samo interesuje jedna stvar (za sad)

Malo sam trazio na netu da vidim kako od prilike ide kod jednog 2D Game Engine i naisao sam na ovaj clanak:
http://gpwiki.org/index.php/SDL:Tuto...ngine_Overview

E sad primjetio sam da u klasama - na primer cTextureManager da stoji ovako (class cTextureManager na ovoj stranici)
Kod:
class cTextureManager
{
    public:
        cTextureManager();
        ~cTextureManager();
 
        uint LoadTextureFromFile(std::string filename);
        uint LoadTextureFromMemory(SDL_Surface* Surface, std::string filename = "");
 
        .........
};
Sve ove funkcije su mi jasne i sluze za obradu te teksture i tako dalje, ali mi jedino nije jasno sto bi stajalo u funkciji "cTextureManager()" i ako moze malo da mi pojasnite ovo ~cTextureManager(). Znam da je to destruktor (?) ali nisam bas siguran cemu sluzi ....
clzola je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:01   #2
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Game Engine, objasnjenje?

Pa, ta klasa bi ti sluzila da "baratas" texturama, primer:

Kod:
cTextureManager* textureManager = new cTextureManager();

uint32 texId = textureManager->LoadTextureFromFile("textures/nekaslika.jpg");

...
// onda kad ti zatreba
textureManager->DrawTexture(texId, 0.0f, 0.0f, ...);
To je jedan primer kako bi mogao to da koristis, naravno, uvek gledaj kako je tebi lakse. Ako bih ja recimo pravio 2D igru, napravio bih da texture manager samo ucitava teksture, a da ih posebna klasa Sprite koristi... Jednu stvar mozes da uradis na milion nacina.

Sto se tice destruktora, oni se pozivaju kada se objekat obrise, npr.: delete(textureManager);

U ovom konkretnom primeru, u destruktoru bi trebao da ides kroz svaku teksturu i da ih brises iz memorije.
EclipsE je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku EclipsE na korisnoj poruci:
clzola (1.2.2011)
Stara 1.2.2011, 20:16   #3
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

Hvala, a sto bi stajalo unutar tijela funkcije
Kod:
cTextureManager()
{
    // ...
}
I ovo sto stavljas '->', da li bi moglo ovako:
textureManager.DrawTexture(texId, 0.0f, 0.0f, ...); ?
clzola je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:21   #4
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
Znam sto je game engine i cemu sluzi, sad me samo interesuje jedna stvar (za sad)

Malo sam trazio na netu da vidim kako od prilike ide kod jednog 2D Game Engine i naisao sam na ovaj clanak:
http://gpwiki.org/index.php/SDL:Tuto...ngine_Overview

E sad primjetio sam da u klasama - na primer cTextureManager da stoji ovako (class cTextureManager na ovoj stranici)
Kod:
class cTextureManager
{
    public:
        cTextureManager();
        ~cTextureManager();
 
        uint LoadTextureFromFile(std::string filename);
        uint LoadTextureFromMemory(SDL_Surface* Surface, std::string filename = "");
 
        .........
};
Sve ove funkcije su mi jasne i sluze za obradu te teksture i tako dalje, ali mi jedino nije jasno sto bi stajalo u funkciji "cTextureManager()" i ako moze malo da mi pojasnite ovo ~cTextureManager(). Znam da je to destruktor (?) ali nisam bas siguran cemu sluzi ....
Funkcija cTextureManager::cTextureManager() nije obična funkcija već konstruktor. To je suprotno od destruktora tj. poziva se kada se objekat napravi, npr. u kôdu
Kod:
cTextureManager myManager;
pozvan je taj konstruktor, kao i kad pozoveš operator new, recimo
Kod:
cTextureManager* myManager = new cTextureManager();
Destruktor se poziva kada se uništi objekat, bilo kada izađe iz scope-a na primer
Kod:
void loadTexture()
{
     cTextureManager myManager;
     // uradimo nešto sa myManager
     ...
} // na kraju ove funkcije myManager je izašao iz scope-a i zove se njegov destruktor
ili kada pozoveš delete ili delete[] operator
Kod:
delete myManager;
Tu je isto pozvan destruktor ~cTextureManager().
U ovom mom članku imaš malo opširnije o upotrebi konstruktora i destruktora, i o klasama uopšte.

EDIT: Sad sam video ovo drugo pitanje.
Prvo, unutar tela funkcije pišeš bilo šta što treba da se desi kada se napravi objekat klase cTextureManager. Opet, imaš opširnije u članku.
Što se tiče operatora ->, on se koristi kada je u pitanju pokazivač na objekat. Dakle, ako je definisano
Kod:
cTextureManager firstOne;
cTextureManager* secondOne = new cTextureManager;
U ovom slučaju, koristili bismo firstOne.DrawTexture(), ali za secondOne bi koristili -> tj. secondOne->DrawTexture. U većini engine-a koristićeš pokazivače ka objektima umesto samih objekata (uglavnom).
Geomaster je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Geomaster na korisnoj poruci:
clzola (1.2.2011)
Stara 1.2.2011, 20:28   #5
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
Hvala, a sto bi stajalo unutar tijela funkcije
Kod:
cTextureManager()
{
    // ...
}
I ovo sto stavljas '->', da li bi moglo ovako:
textureManager.DrawTexture(texId, 0.0f, 0.0f, ...); ?
Unutar konstruktora bi stavio ono sto ti je potrebno za tu klasu...
Mislim da bi ti bilo dobro da krenes da citas malo o OOP zato sto su ovo neke osnovne stvari. Ako hoces, poslacu ti na PM neke preporuke gde da 'kupis' dobre knjige
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:32   #6
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

ae posalji
clzola je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:33   #7
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
ae posalji

I dalje ne dobih odgovor za ovu strelicu '->'
Napisao sam ti u postu malopre, čitaj
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:40   #8
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

nisam relodovao stranicu pa nisam video, kasnije sam video posle reload

E sad na primer ovo (Ako sam dobro ukapirao)
Kod:
class cTextureManager {
    public:
        cTextureManager();
        ~cTextureManager();
        
        void DrawTexture();
    };
    
cTextureManager::cTextureManager()
{
    TEXTURE *texture;
    int x;
    int y;
}

cTextureManager::DrawTexture()
{
    draw(texture, x, y);
}

int main()
{
    cTextureManager *tekstura = new cTextureManager();
    
    tekstura->DrawTexture();
}
OK?

Poslednja ispravka: clzola (1.2.2011 u 20:47)
clzola je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:47   #9
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
nisam relodovao stranicu pa nisam video, kasnije sam video posle reload

E sad na primer ovo (Ako sam dobro ukapirao)
Kod:
class cTextureManager {
    public:
        cTextureManager();
        ~cTextureManager();
        
        void DrawTexture();
    };
    
cTextureManager::cTextureManager()
{
    TEXTURE *texture;
    int x;
    int y;
}

cTextureManager::DrawTexture()
{
    draw(texture, x, y);
}

int main()
{
    cTextureManager *tekstura = new cTextureManager();
    
    tekstura->DrawTexture();
}
OK?
Ne
Definicije TEXTURE *texture, int x i y ne idu u konstruktor, konstruktor je samo funkcija.
Kod:
class cTextureManager {
    protected:
        TEXTURE *texture;
         int x;
         int y;

    public:
        cTextureManager();
        ~cTextureManager();
        
        void DrawTexture();
    };
    
cTextureManager::cTextureManager()
{
      // u konstruktoru bi išlo nešto tipa texture = new TEXTURE, ili kako već
     // odnosno podešavanje svih potrebnih objekata
}

cTextureManager::DrawTexture()
{
    draw(texture, x, y);
}

int main()
{
    cTextureManager *tekstura = new cTextureManager();
    
    tekstura->DrawTexture();
}
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:49   #10
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

Da li bih mogao da dodijelim vrijednost x=10 u konstruktoru...

znaci stavio bih

texture = new texture;
int x = 10;
int y = 30;

??
clzola je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:50   #11
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
Da li bih mogao da dodijelim vrijednost x=10 u konstruktoru...

znaci stavio bih

texture = new texture;
int x = 10;
int y = 30;

??
Da, samo umesto int x bilo bi samo x, pošto int x pravi novu promenljivu, a tebi treba da dodeliš vrednost toj promenljivi u objektu klase.
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 1.2.2011, 20:51   #12
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

da bravo, zaboravio sam da je to prije deklarisano, u pravu si .. Hvala (za sad )
clzola je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 14:12   #13
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

Zadnjih par dana sam malo cackao i do sada sam napisao ovo:

main.cpp: http://paste2.org/p/1227854
cSystemManager.h: http://paste2.org/p/1227855
cImageManager.h: http://paste2.org/p/1227858

cImage.h: http://paste2.org/p/1227857

cSystemManager.cpp: http://paste2.org/p/1227856
cImageManager.cpp: http://paste2.org/p/1227860

Kod radi. Sad bih htio da pitam, da li treba ovako da nastavim da pisem, da li je dobar dizajn koda i sta bih trebao da mijenjam (ako ima sta da se promjeni)....
Ima par funkcija za koje nisam napisao kod ali to naravno kasnije planiram da popunim (vjerovatno i nesto izmjenim)
clzola je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 14:18   #14
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
Zadnjih par dana sam malo cackao i do sada sam napisao ovo:

main.cpp: http://paste2.org/p/1227854
cSystemManager.h: http://paste2.org/p/1227855
cImageManager.h: http://paste2.org/p/1227858

cImage.h: http://paste2.org/p/1227857

cSystemManager.cpp: http://paste2.org/p/1227856
cImageManager.cpp: http://paste2.org/p/1227860

Kod radi. Sad bih htio da pitam, da li treba ovako da nastavim da pisem, da li je dobar dizajn koda i sta bih trebao da mijenjam (ako ima sta da se promjeni)....
Ima par funkcija za koje nisam napisao kod ali to naravno kasnije planiram da popunim (vjerovatno i nesto izmjenim)
Ne razumem se u SDL pa ne znam koliko su prakse vezane za njega dobre ili loše, ali uopšteno, kôd je okej (iako ti tu imaš jako malo).
Samo jedna stvar, ako planiraš da pišeš neku igru/aplikaciju, nikad ne stavljaj sav kôd u main.cpp. Napravi neku klasu tipa Application i onda u njoj napravi razne metode tipa initialize, destroy ili startRendering, koje ćeš koristiti iz main-a.
Pošto vidim da je pisanje tog wrappera oko SDL-a tvoj cilj (ne pisanje igre/aplikacije koja ga koristi) zadržaću se na tome.
Samo napred, pozdrav.
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 14:21   #15
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objasnjenje?

Mada ja sam mislio vise na dizajn ne na funkcije iz SDL koje ja koristim
Ok, hvala na komentaru
clzola je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 15:24   #16
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: Game Engine, objasnjenje?

Citat:
clzola kaže: Pregled poruke
Zadnjih par dana sam malo cackao i do sada sam napisao ovo:

...
Izgleda si ignorisao moj prvi post u ovoj temi

Zašto bi ti ImageManager crtao sliku? Lepo napraviš klasu Sprite koja sadrži informacije o toj slici koju želiš da nacrtaš na ekranu. Ona će sadržati neke informacije kao što su x, y, width, height, sdlSurface... Cilj ImageManagera treba da bude da samo vodi računa o tome koje slike učitane u memoriju: dakle, pozoveš ImageManager->LoadBMPFromFile("filename", SPRITE_PACMAN), i on u neki std::map<int, Texture> učita tu sliku iz fajla, pod ID-om SPRITE_PACMAN (neka const.).

Posle toga, mogao bi da napraviš: Sprite* pacman = new Sprite(imgManager->GetTexture(SPRITE_PACMAN));
I kada crtaš: pacman->SetX(20); pacman->SetXY(30, 60); pacman->Draw();

Mislim, ne postoji jedan način da se odradi nešto. Tvoj pristup mi se ne sviđa zato što, pogledaj primer:

Kod:
IMAGE hello;

hello.image = ImgManager->LoadImageFromFile("data/images/hello.bmp");

// hocemo da nacrtamo kuglicu

ImgManager->SetImageCoordinates(&hello, 100, 10);
ImgManager->DrawImage(hello, screen);

// sada, ne smemo da ucitavamo opet novu sliku iz fajla, vec ako hocemo
// nov objekat sa tom slikom moramo da kopiramo strukturu hello
// ili da nju iskoristimo za crtanje

ImgManager->SetImageCoordinates(&hello, 110, 20);
ImgManager->DrawImage(hello, screen);
vs

Kod:
ImgManager->LoadFromFile("data/images/hello.bmp", SPRITE_YELLOW_BALL);

Sprite* obj1 = new Sprite(ImgManager->GetTexture(SPRITE_YELLOW_BALL));
Sprite* obj2 = new Sprite(ImgManager->GetTexture(SPRITE_YELLOW_BALL));

obj1->SetPosition(10, 20);
obj2->SetPosition(30, 40);

obj1->Draw();
obj2->Draw();
I know... Ne umem da objašnjavam
Valjda ćeš izvući nešto korisno iz ovog.
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 15:27   #17
NISAM NESTO SMART
Član
 
Član od: 14.7.2009.
Lokacija: Srbija
Poruke: 315
Zahvalnice: 53
Zahvaljeno 73 puta na 54 poruka
Slanje poruke preko MSN-a korisniku NISAM NESTO SMART
Određen forumom Re: Game Engine, objasnjenje?

Samo pazi koliko sam primetio u main.cpp, napravio si ona dva objekta dinamicki upotrebom operatora new a nigde ih nisi kasnije obrisao sa delete...Takodje mislim da je najbolje da napravis neku glavnu GameEngine klasu da ne trpas sve u main..Znaci da ti main izgleda nesto ovako


Kod:
int main()
{
GameEngine *game = new GameEngine(800,600,"Moja aplikacija");

while(game->running)
{
game->Draw();
game->Update();
game->Cleanup();
}

delete game;

return 0;
}
GameEngine.h

Kod:
#ifndef GAMEENGINE_H
#define GAMEENGINE_H

class GameEngine
{
public:
GameEngine(int width, int height,std::string name);

void Draw();
void Update();
void Cleanup();

};
#endif
Probaj tako nesto da uradis...takodje da li planiras da napravis samo neki mali framework oko SDL-a ili neki gameengine
NISAM NESTO SMART je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 15:35   #18
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: Game Engine, objasnjenje?

Citat:
NISAM NESTO SMART kaže: Pregled poruke
Samo pazi koliko sam primetio u main.cpp, napravio si ona dva objekta dinamicki upotrebom operatora new a nigde ih nisi kasnije obrisao sa delete...Takodje mislim da je najbolje da napravis neku glavnu GameEngine klasu da ne trpas sve u main..Znaci da ti main izgleda nesto ovako


Kod:
int main()
{
GameEngine *game = new GameEngine(800,600,"Moja aplikacija");

while(game->running)
{
game->Draw();
game->Update();
game->Cleanup();
}

delete game;

return 0;
}
GameEngine.h

Kod:
#ifndef GAMEENGINE_H
#define GAMEENGINE_H

class GameEngine
{
public:
GameEngine(int width, int height,std::string name);

void Draw();
void Update();
void Cleanup();

};
#endif
Probaj tako nesto da uradis...takodje da li planiras da napravis samo neki mali framework oko SDL-a ili neki gameengine
I nikad ne trpaj ovakve parametre u konstruktor (tipa width, height etc.), to treba da kontroliše druga klasa.
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 18:50   #19
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Game Engine, objašnjenje?

@Eclipse
Skapirao sam sta mislis...
Ja pravim objekat hello. I onda mu lodujem sliku hello.bmp.
Ako bih napravio objekat hello2 morao bih da lodujem novu sliku..

Treba sliku hello.bmp ucitati jednom, a hello i hello2 bi koristili tu sliku

@Nisam Nesto Smart
Za sad bih napravio nesto mini engine, ovo radim vise iz toga sto zelim malo da naucim i tako to, a i kasnije mi moze koristiti ako bih pravio neke igrice...
clzola je offline   Odgovor sa citatom ove poruke
Stara 4.2.2011, 19:41   #20
NISAM NESTO SMART
Član
 
Član od: 14.7.2009.
Lokacija: Srbija
Poruke: 315
Zahvalnice: 53
Zahvaljeno 73 puta na 54 poruka
Slanje poruke preko MSN-a korisniku NISAM NESTO SMART
Određen forumom Re: Game Engine, objašnjenje?

Hmm nisam znao da je loša praksa da stavljas takve parametre u konstruktoru....mislio sam da je laske tako nego praviti zasebnu funkciju..but oh well never mind...
@cizola:
Da ja mislim da je to Eclipse pokusao da objasni..da ti ImageManager barata samo oko ucitavanja slika...Nego zaboravio sam kako je u SDL ali znam da u SFML da su oni zasebno napravili Image klasu i zasebno Sprite klasu...gde Image uglavnom samo sluzi za ocitavanje iz memorije a Sprite za manipulisanje.
NISAM NESTO SMART je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Problem, game engine u SDL-u boshkodj Programiranje 16 9.7.2009 14:48
Jednostavan game engine [tek treba] allokin Pravljenje igara 6 9.3.2009 15:51
Freeware game engine kovacevicdr Pravljenje igara 5 27.12.2008 1:55
2d game engine Damjan Pravljenje igara 48 22.6.2007 11:35
Road Rush kodovi? Darth Ivan Stare igre 5 1.11.2006 22:41


Sva vremena su po Griniču +2 h. Sada je 8:37.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com