|
Pravljenje igara Programski jezici, tehnike, alatke u službi pravljenja igara... |
|
Alatke vezane za temu | Vrste prikaza |
12.12.2008, 19:09 | #21 |
V.I.P. Programiranje
|
Re: Game engine
Ko ce dodjavola znati?
Kod:
while (neki uslov, npr. da li je pritisnut taster escape) { // iscrtas sve } return 0; I shut up (STFU), k'o što reče allokin. Prvo proveri tutorijale, kako kažu pa tek posle pitaj. Ne obrnuto. To tako ne ide. |
12.12.2008, 20:58 | #22 |
Član
Član od: 7.11.2007.
Poruke: 112
Zahvalnice: 28
Zahvaljeno 30 puta na 11 poruka
|
Re: Game engine
Jesi li podesio VS2008 kako treba? Imas ne ovoj lazyfoo stranici kako trebas sve podesiti.
Daj nam kod. |
13.12.2008, 10:33 | #23 |
Banned
Član od: 12.12.2008.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
Re: Game engine
Jesam sigurno!!! Juce sam se ceo dan mucio i na kraju sam uspeo da pokrenem 1 program i to ovaj:
Kod:
#include "SDL/SDL.h" #include "SDL/SDL_image.h" #include <string> const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32; SDL_Surface *image = NULL; SDL_Surface *screen = NULL; SDL_Event event; SDL_Surface *load_image( std::string filename ) { SDL_Surface* loadedImage = NULL; SDL_Surface* optimizedImage = NULL; loadedImage = IMG_Load( filename.c_str() ); if( loadedImage != NULL ) { optimizedImage = SDL_DisplayFormat( loadedImage ); SDL_FreeSurface( loadedImage ); } return optimizedImage; } void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination ) { SDL_Rect offset; //Get the offsets offset.x = x; offset.y = y; SDL_BlitSurface( source, NULL, destination, &offset ); } bool init() { if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) { return false; } screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); if( screen == NULL ) { return false; } SDL_WM_SetCaption( "Event test", NULL ); return true; } bool load_files() { //Load the image image = load_image( "x.png" ); if( image == NULL ) { return false; } return true; } void clean_up() { SDL_FreeSurface( image ); SDL_Quit(); } int main( int argc, char* args[] ) { bool quit = false; if( init() == false ) { return 1; } if( load_files() == false ) { return 1; } apply_surface( 0, 0, image, screen ); if( SDL_Flip( screen ) == -1 ) { return 1; } while( quit == false ) { while( SDL_PollEvent( &event ) ) { if( event.type == SDL_QUIT ) { quit = true; } } } clean_up(); return 0; } Kod:
#include "SDL/SDL.h" #include "SDL/SDL_image.h" #include <string> const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32; SDL_Surface *background = NULL; SDL_Surface *foo = NULL; SDL_Surface *screen = NULL; SDL_Event event; SDL_Surface *load_image( std::string filename ) { SDL_Surface* loadedImage = NULL; //The optimized image that will be used SDL_Surface* optimizedImage = NULL; loadedImage = IMG_Load( filename.c_str() ); if( loadedImage != NULL ) { optimizedImage = SDL_DisplayFormat( loadedImage ); SDL_FreeSurface( loadedImage ); if( optimizedImage != NULL ) { //Map the color key Uint32 colorkey = SDL_MapRGB( optimizedImage->format, 0, 0xFF, 0xFF ); //Set all pixels of color R 0, G 0xFF, B 0xFF to be transparent SDL_SetColorKey( optimizedImage, SDL_SRCCOLORKEY, colorkey ); } } //Return the optimized image return optimizedImage; } void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination ) { //Temporary rectangle to hold the offsets SDL_Rect offset; //Get the offsets offset.x = x; offset.y = y; //Blit the surface SDL_BlitSurface( source, NULL, destination, &offset ); } bool init() { //Initialize all SDL subsystems if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) { return 1; } //Set up the screen screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); //If there was an error in setting up the screen if( screen == NULL ) { return 1; } //Set the window caption SDL_WM_SetCaption( "Foo says \"Hello!\"", NULL ); //If everything initialized fine return true; } bool load_files() { //Load the background image background = load_image( "background.png" ); //If the background didn't load if( background == NULL ) { return false; } //Load the stick figure foo = load_image( "foo.png" ); //If the stick figure didn't load if( foo == NULL ) { return false; } return true; } void clean_up() { //Free the surfaces SDL_FreeSurface( background ); SDL_FreeSurface( foo ); //Quit SDL SDL_Quit(); } int main( int argc, char* args[] ) { //Quit flag bool quit = false; //Initialize if( init() == false ) { return 1; } //Load the files if( load_files() == false ) { return 1; } //Apply the surfaces to the screen apply_surface( 0, 0, background, screen ); apply_surface( 240, 190, foo, screen ); //Update the screen if( SDL_Flip( screen ) == -1 ) { return 1; } //While the user hasn't quit while( quit == false ) { //While there's events to handle while( SDL_PollEvent( &event ) ) { //If the user has Xed out the window if( event.type == SDL_QUIT ) { //Quit the program quit = true; } } } //Free the surfaces and quit SDL clean_up(); return 0; } Poslednja ispravka: VojaM (14.12.2008 u 14:59) Razlog: Nauči kako se koristi CODE tag |
14.12.2008, 1:48 | #24 |
Kekule Mekule
|
Re: Game engine
Da li ti kojim slucajem imas taj x.png?
|
14.12.2008, 1:55 | #25 |
Veteran
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
|
Re: Game engine
Pomoc sta? Ipak je to tutorijal, nemoguce je da ne kontas nista.. Imas brdo komentara u kodu. Ako ti ne ide engleski onda probaj ovaj srpski tut: http://www.serbiandownload.com/sdfor...p?topic=6684.0
Ako ti ni tu nista nije jasno (a ovo je skoro cista teorija bez koje ne mozes), onda stvarno ne znam.. |
21.12.2008, 21:58 | #26 |
Veteran
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
|
Re: Game engine
Cao,da ne otvaram novu temu,pitacu ovde...
Kako se ustwari pravi game engine??? Sta je potrebno znati za to??? Gledao sam po raznim forumima(i po ovom) i imalo je u jednoj temi kako se to radi ali mi nista nije jasno!!! Pa ako ima neko ko je voljan da mi to objasni ili jos bolje da neki primer,molim neka to ucini!!! |
21.12.2008, 23:19 | #27 | |
Starosedelac
Član od: 2.5.2006.
Lokacija: Austrija
Poruke: 1.444
Zahvalnice: 136
Zahvaljeno 75 puta na 59 poruka
|
Re: Game engine
Citat:
Pa logicno je prvo da znas MNOGO DOBRO da programiras i da poznajes programse jezike, logiku programiranja itd. Ovako: Skini sa interneta DarkBasic. To je programski Basic jezik, koji je namenjen samo programiranju igara. Jako je dobar za polagani ulazak u razvijanje igara. Imas primere koji ce ti kolko tolko pribliziti sta i kako, a kasnije ces moci u njemu da radis i ozbiljnije igre posto je jezik dosta napredovao. Poz |
|
21.12.2008, 23:38 | #28 | |
V.I.P. Programiranje
|
Re: Game engine
Citat:
__Programiranje + Još programiranja + Još puno programiranja + Matiš (trigonometrija) + Vredan rad × Upornost - Lenjost ---------------------- __Game engine |
|
22.12.2008, 11:03 | #29 |
Banned
Član od: 20.12.2005.
Lokacija: banjaluka
Poruke: 3.220
Zahvalnice: 278
Zahvaljeno 363 puta na 216 poruka
|
Re: Game engine
Pa evo jedan primjer, lako ces shvatiti o cemu je rijec:
Zamisli imas kolegu koji ti je dizajnirao 3D model glavnog junaka za tvoju igru, a ti, sa druge strane, pravis igru u C++ bez ikakvog engine-a. E sad, imas li ikakvu predstavu kako ucitati taj 3D model u svoj program? Vjerovatno ne znas ni odakle uopste da pocnes. Bez engine-a, trebace ti, ne samo dobro poznavanje jezika, vec i strukture fajla u kom si dobio model. Jos ako ima teksture, animacije... Engine ti omogucuje da sa jednom linijom koda to sve odradis, jer, da budemo iskreni, tebi je cilj samo da taj model iskoristis u igri. |
22.12.2008, 14:00 | #30 |
V.I.P. Programiranje
|
Re: Game engine
Da se nadovežem na sashin primer: Na primer, Direct3D biblioteka D3DX ima funkciju za učitavanje modela u .x formatu. Naravno to je samo učitavanje geometrije, dok teksture moraš sam da ekstraktuješ iz fajla. Još ako se recimo, pojavljuju bones-i i animacija pomoću njih, trebaće ti stvarno mnogo koda A ako učitavaš iz nekog drugog formata, moraš da pročitaš binarne podatke iz fajla i dekodiraš ih, a za to ti treba poznavanje strukture fajla odakle učitavaš model. Ovaj primer sa učitavanjem .x fajlova ne koristi nijedan multiplatformski engine već se .x fajl učitava nezavisno od D3D-a -- zamisli da, recimo, engine radi na drugom OS-u i pozove se Direct3D funkcija...
Sa engine-om je drugačije. Sve se svodi samo na recimo myModel = engine->loadMesh("C:\PERA-ZDERA.3ds"); |
22.12.2008, 20:11 | #31 |
Veteran
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
|
Re: Game engine
ok!!! Znam ja sta je engine,ali kada sam video u jednom postu sto je ostavio geomaster za njegov game engine,tada sam(sto pre nisam znao)shvatio da moze to da napravi jedan covek!!!
Pa me zanima kako se to pravi??? Na primer kako da napravim da taj moj engine moze da ucita sliku na ekran ??? |
22.12.2008, 20:32 | #32 |
Kekule Mekule
|
Re: Game engine
Uzmes tiganj, sipas ulje, stavis na tihu vatru i cekas. Kada ulje dostigne odgovarajucu temperaturu lupi dva jaja i sipaj u tiganj i dobijes sliku dva oka... A ti si hteo sliku na monitoru, ludog mene... Znas kako, za sve ovo vreme htedenja pravljenja necega i vatanja zjala, mogao si lepo nauciti strukturu samog jezika C++ i bazicne koncepte OOP-a. Pored toga si mogao da naucis osnove SDL-a i OpenGL-a + kako njih dvoje da spojis. Sta vise, sa poznavanjem OOP strukture bi ti se samo kazlo kako se engine radi. Naucis prvo jezik i API-je koji ti trebaju, igras se malo sa njima, a onda tek sednes, uzmes olovku i papir i razmisljas o strukturi enginea. Sta bi ti trebalo? Prvo jedna osnovna klasa koja ce ti ciniti kostur celog enginea, koja bi napravila prozor i osvezavala ga svaki pass. Onda bi mogao da napravis klasu za event handling (input etc...), koja bi se baktala sa svim eventima korisnika. Onda oces da iscrtas sliku? Ako si podesio kostur aplikacije da refresuje prozor (tj. da ima mogucnost da se crta), onda napravis jednu klasu koja ce predstavljati teskturu, u kojoj ce se vrsiti ucitavanje fajlova (ovo moze drugacije naravno, sa odvojenim klasama za ucitavanje tipa TextureManagera etc...), a drugu kao Sprajt koja ce imati neku teksturu i iscrtavati je. Onda... Pa onda upotrebis svoj mozak naravno. A pre nego sto se krenes baviti pravljenjem enginea uradis onaj postupak posle jaja a pre strukture enginea...
|
22.12.2008, 21:09 | #33 |
Veteran
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
|
Re: Game engine
Znam da sam brzo ucio i da verovatno dosta toga ne znam!!! Ali ,prijavio sam se za takmicenje i sada mi treba neki sto jednostavniji game engine,koji je lak!!! Meni treba samo funkcija za ucitavanje slike,malo koriscenje misa(samo da kada kliknem na sliku da se otvori) i to je to!!! Naravno,dobro bi doslo kada bi mogao i zvuk al to nema veze!!! Jel znate neki engine koji odgovara ovim mojim potrebama a da se brzo uci!!!
P.S Kada prodje takmicenje(6. februara) ili kada napravim ovo sto sam zamislio opet se bacam na ucenje c++ i polako sa SDL-om i Opengl-om po preporuci Androssa!!! |
22.12.2008, 21:53 | #34 | |
Veteran
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
|
Re: Game engine
Citat:
Covece, iskreno da ti kazem.. nisi ti za programiranje. |
|
22.12.2008, 22:24 | #35 |
Veteran
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
|
Re: Game engine
Nemoj da umisljas da si ti kao neki programer pa sada ti nekom kazes da neko nije za programiranje!!!Veruj,ja sam mnogo vise za programiranje nego ti!!!
A preko koje biblioteke??? |
22.12.2008, 22:41 | #36 | |
Veteran
Član od: 16.4.2007.
Lokacija: Novi Sad,Veternik
Poruke: 874
Zahvalnice: 628
Zahvaljeno 452 puta na 231 poruka
|
Re: Game engine
Citat:
Lepo ti je covek rekao poslusaj ga. Koliko sam video(a imao sam priliku da se uverim u to) ti nemas bukvalno receno blage veze!!!! |
|
22.12.2008, 23:02 | #37 |
Veteran
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
|
Re: Game engine
U kojoj biblioteci ima ovo sto sam naveo da mi je potrebno???
|
22.12.2008, 23:15 | #38 |
Kekule Mekule
|
Re: Game engine
Za programiranje ti treba mozak koji ces aktivno koristiti. Ti svoj bas nisi nesto ukljucio. SDL = Simple Direct Media Library. Library = Biblioteka. Stvarno 10 puta si gori od mene u mojim danima...
|
23.12.2008, 0:18 | #39 |
Veteran
|
Re: Game engine
@boskodj:
Probaj sa game maker-om, pogledaj tutoriale sa sajta, i za nedelju dana ucenja ces moci da napravis to sto ti treba. Dobra stvar je sto ces jos neko vreme moci da radis i 2d igre sa njim. http://www.yoyogames.com/make |
23.12.2008, 0:39 | #40 | |
V.I.P. Programiranje
|
Re: Game engine
Citat:
@boško: To što sam ja napisao (Spike2D Engine) ... 1. ... nije game engine nego 2D render engine; 2. ... je pisano u Javi, koja je mnogo komfortabilnija za rad od C++-a; 3. ... je pisano za mobilne telefone; 4. ... se zasniva samo na dobrom poznavanju klase GameCanvas, Sprite, Layers-a i LayerManager-a. Kada je u pitanju 2D game engine pisan u C++-u, za Windows, stvari su drugačije. Ali to i dalje može uraditi jedan čovek, ako je dobro tehnički potkovan. |
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
White Knight Story-56k warning | donator99 | Konzole | 11 | 24.12.2008 22:31 |
Call of Duty Real-Time Card Game (kartaška igra sa tematikom drugog svetskog rata) | Liquid Nitrogen | Brbljaonica | 9 | 7.6.2008 12:56 |
Treba mi dobar i besplatan komercijalni game engine | S3ph1ROth | Pravljenje igara | 8 | 15.2.2008 0: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 |