|
Pravljenje igara Programski jezici, tehnike, alatke u službi pravljenja igara... |
|
Alatke vezane za temu | Vrste prikaza |
21.8.2006, 0:38 | #221 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
E sada ide glavni deo koda.
Prvo se deklarišu neke važne promenjljive koje će se koristiti u kodu: Kod:
int iBrojac = 0; int iRed, iKolona; char cKomanda; int nStatus; Kod:
do { //Glavna petlja Glavnog menija //Ispis izgleda glavnog menija for(iRed = 1 ;iRed <= 3;iRed++){ for(iKolona = 1 ;iKolona <= 40; iKolona++){ if((iRed == 2) && (iKolona == 1)){ cout << "****** KOSTOLACKA NARODNA LUTRIJA ******"; iKolona += 39; continue; } else { cout << "*"; } } cout << endl; } cout << "\nIzaberite opciju:\n" << endl; cout << "\t1. Promena broja kuglica\n"; cout << "\t2. Izvlacenje!!\n"; cout << "\t0. Necu vise da se igram :)\n\n"; cout << "\tVas izbor (0-3): "; cin >> cKomanda; // unos komande //switch petlja koja kontolise granjanje glavnog programa switch (cKomanda){ case '0': // opcija za izlazak iz programa nStatus = 0; break; case '1': // promena broja kuglica PromenaNrKuglica(); break; case '2': //izvlacenje Izvlacenje(); SortiranjeNiza(); IspisKombinacije(); break; default: // opcija koja se izvrsava po defaultu cout << "\nPrestanite da se izmotavate i unesite broj od 0 do 2!!!\n\n"; cout << "ENTER za nastavak....!\n"; fflush(stdin); cin.get(); } } while (nStatus); Poslednja ispravka: holodoc (21.8.2006 u 0:57) |
21.8.2006, 0:39 | #222 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Dalje treba napomenuti da se kompletan program nalazi u jednoj „do...while“ petlji koja stalno proverava šta je korisnik uneo od komandi. U slučaju da je u pitanju nula program preko pomoćne promenjljive „nStatus“ završava program.
Sledi najvažniji deo glavne petlje koji demonstrira gde se koristi „switch“ komanda. Naime, switch se ovde koristi da bi u zavisnosti od izbora korisnika program krenuo određenim redosledom izvršavanja i pozivanja funkcija. Ovo je najčešća primena petlje switch u C++ programima i zbog toga je važno zapamtiti je na ovom mestu. Inače, da bi se zaštitili od raznih unosa koji nisu u meniju postoji deo „switch“ komande koji se zove „default“ koji se po automatizmu izvršava ako nije ispunjen nijedan od prethodnih uslova. Svi programi koji su nekada pisani za DOS koristili su ovaj način kontrole. Ostatak koda bi trebao da bude jasan. Znam da je ovaj primer malo poduži ali mislim da ne sadrži ništa što do sada nije obrađeno u ovim tutorijalima. Naravno da sam imao muke da se suzdržim od korišćenja klasa i ostalih C++ specijalki ali sam hteo da demonstriram kako je moguće napisati jedan program od same nule i pri tome imati apsolutnu kontrolu nad njegovim radom. Poslednja ispravka: holodoc (21.8.2006 u 0:58) |
21.8.2006, 2:30 | #223 | |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Malo sam preturao po arhivi i naleteo na jedan interesantan program koji sam napisao pre mnogo, mnogo vremena. Program nije direktno vezan za game-dev i nije čak ni pisan u C++-u već u C-u ali mi se učinio kao jako interesantan pa sam rešio da ga podelim sa vama. Naravno da neću moći da objašnjavam sve delove koda jer sadrži dosta stvari koje još nisu ni pomenute na ovom mestu kao što su fajl pokazivači, operatori veličine tipa podatka itd.
Naime, ovaj program je nastao kao šala koju sam par puta upotrebio na svojim prijateljima kada su pokušali da se naprave pametni nekom svojom smicalicom Sećam se slučajeva kada su ljudi čupali kablove iz računara kako bi ga isključili da ovo malo programče ne bi nastavilo sa radom Čak se sećam kako mi se jedan prijatelj kleo kako mu je program izbrisao ceo hard disk sa preko 80GB-a muzike Šta ovaj program uopšte radi? U suštini proširuje ideju o „simulaciji“ formatiranja hard diska Znamo da je veoma lako napraviti program koji će da napiše nešto u fazonu „Ej bato saću da ti formatiram disk“ i na ekranu da odbrojava do 100% ali ovaj program je pored originalnog format „interface-a“ dobio i jedan mali facelift. Naime, većina korisnika može odmah da provali da se običan „format“ program samo šali kada počne da ispisuje one procente na ekranu jer fali jedan bitan faktor u celoj simulaciji da bi fora bila kompletna, rad hard diska odnosno njegove lampice Lično sam dobijao tone ovakvih kvaziformat programa ali odmah je bilo lako zaključiti da se radi o fake-u jer lampica zasija samo jednom a na ekranu se i dalje ispisuje nešto u fazonu „Seljo formatiram ti hard disk i stigao sam do 23% and counting“ Tu na scenu stupa jedan mali trik koji ovaj program koristi a to je da u toku rada lampica zaista radi sve vreme tako da žrtvu veoma brzo prođe duhovitost kada shvati da je vrag odneo šalu Ovaj program na hard disku kreira dva fajla pod nazivom „dummy“ i „dummy2“ koji naizmenično razmenjuju svoj sadržaj odnosno „presipaju“ sadržaj iz jednog fajla u drugi. Znači, kompletnu ideju treba zamisliti kao dve identične čaše pri čemu se sve vreme vrši presipanje tečnosti iz jedne u drugu. Pošto su fajlovi veoma veliki to poprilično zapošljava IDE magistrale pa se lampica skoro nikada neće ugasiti Ceo proces prestaje po isteku onih pomenutih 100% kada se pojavljuje deo „Enter volume name:“. Inače, kod sadrži i jedan deo koji po defaultu nije sadržan u krajnjem izvršnom fajlu a koji je bio inspirisan jednim tekstom iz Sveta Kompjutera od pre par godina. Tekst je išao nešto u fazonu: Citat:
|
|
21.8.2006, 2:31 | #224 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Pre isprobavanja ovog koda par VEOMA VAŽNIH napomena!!!
Vodite računa ukoliko budete eksperimentisali šta menjate u kodu. Potreban prostor na hard disku zavisi od vrednosti koje imaju #define „CIKLUS“ i #define „PORUKA“. CIKLUS je ovde postavljen na 3 000 000 što bi otprilike trebalo da odgovara „potrebama“ hard diska na 7200 [o/min]. Za neki Raptor na 10 000 [o/min] bi možda vrednost mogla da se poveća na 4 000 000 ali ne preporučujem takvu rabotu. Kao što rekoh veličina izlaznog fajla zavisi i od „PORUKA“ #define-a i dobija se kada se pomnoži dužina „stringa“ „PORUKA“ u bajtovima i broja „CIKLUS“. U prevodu, ako je „PORUKA“ duga 25 bajtova a ciklus postavljen na 3 000 000 u tom slučaju će veličina jednog fajla biti oko 75MB! Pošto postoji dva fajla za ispravno funkcionisanje ovog programa je potrebno 150MB-a!!! Inače, program je namenjen da radi u verziji u kojoj je jedan deo namerno izostavljen tako da bi „format“ komanda bila uverljivija. To je onaj deo sa komentarima na početku. U stvari, taj tekst je postojao od samog početka u kodu ali sam ga ja „komentovao“ da se ne bi našao u .exe varijanti Za one koji žele da vide program onako kako je prvi put kompajliran neka otkomentuju mesta u kodu na kojima je to naznačeno da treba da se uradi. Potražite komentare označene sa tačkom „A“ i tačkom „B“. Inače, možete i da proverite sadržaj nastalog fajla ali nemojte da ga otvarate Word-om već najbolje WordPad-om ili sličnim Od dodatnih korisnih stvari pomenuo bih ovde jednu veoma korisnu promenjljivu sadržanu u okviru standardnih zaglavlja a to je „CLOCKS_PER_SEC“. Ona sadrži broj clock ciklusa procesora koje je potrebno izbrojati da bi na datom sistemu prošao vremenski ciklus od jedne sekunde. Korišćenje ove promenjljive je veoma važno ako se žele pisati programi koji ne trebaju da se razlikuju po brzini izvršavanja na različitim platformama. Toliko od mene za danas. |
22.8.2006, 23:03 | #225 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Izgleda da će sledeći kod da izgleda ovako:
Kod:
#include<ijaostream> int main(){ while(holodoc_kucka){ cout << "Raja posustaje"; } return THE_END; } |
23.8.2006, 13:03 | #226 |
Veteran
|
Re: objasnjenja pocetniku
@ holodoc
ovaj dev c++ zamara jer nije sve tako lako, a i ovaj bagoviti sams isto zamara jel ima neki drugi c++, za koji nista ne mora da se prepravlja, da mi lepo stoji u prozoru ZDRAVO ZILE li tako nesto, a ne da cim on to izvrsi odma zatvori prozor, i to psihicki degradira, i obeshrabruje(kao da nesto nisam uradio lepo). pozz , i jos imas svoje verne ucenike. |
23.8.2006, 13:39 | #227 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.086
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: objasnjenja pocetniku
Brate mili, ako ti problem pravi to što ti Windows zatvori prozor a ti ne vidiš šta je u njemu, onda batali programiranje sad odma. To zadržavanje programa da ti vidiš šta je ispisano, iako je program gotov, je podilaženje početnicima i ne pomaže da shvatiš osnovne stvari.
Zamisli šta su radili programeri u vreme DOS-a i flopi diskova, kad ti je na jednoj disketi bio DOS a na drugoj "razvojno okruženje". Ili mučenici za vreme Commodorea 64, kad si morao 2 puta da razmisliš pre nego što bilo šta otkucaš. Danas može da programira svaka baba. |
23.8.2006, 16:01 | #228 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Pošto je postojala realna opasnost da na ovom mestu objavim tekst pod imenom "Mali Mukica - Revenge of the Compiler" odlučio sam da to ne uradim nego da pređem odmah na stvar.
@Crusader88 Već sam na samom početku ove teme rekao šta svako ko počinje sa programiranjem može da očekuje za vreme učenja. Brdo problema, brdo problema i još brdo problema. Da ironija bude veća ovo što si ti naveo nije čak ni problem. I da ironija bude još veća u ovoj temi imaš bar na jedno dvadesetak mesta rešenje problema za to zatvaranje prozora. E sad ne želim nikoga da uvredim već samo da skrenem pažnju da programiranje spada u red umnih poslova. Znači, za isti je potreban mozak a ne snažna ruka koja će da vežba puko "copy-paste"-ovanje koda ili rutinsko prekucavanje. Trebate ljudi da počnete malo i da čitate tekst koji ide uz te kodove. Od čistog kopiranja nema ničega jer ćeš ako ništa bar morati na naučiš kako da uspešno kombinuješ te delove koje "copy-paste-uješ" U revodu, ako imaš nameru da se ozbiljnije baviš programiranjem moraćeš da se uozbiljiš i da "nabaviš" mnogo, mnogo volje i motivacije. S obzirom koliko ti je godina još uvek imaš vremena za to Pozdrav. |
24.8.2006, 8:05 | #229 |
Član
Član od: 1.4.2006.
Poruke: 493
Zahvalnice: 85
Zahvaljeno 143 puta na 83 poruka
|
Re: objasnjenja pocetniku
JOJ, sams i knjige naucite sve za 21 dan za 24 casa itd. najgore knjige ikada,
Laslo Kraus: Programski jezik c++ sa resenim zadacima, ali pre toga obavezno kupi Laslo Kraus: Programski jezik c sa resenim zadacima, svi programi rade, a uvek mozes da ga pitas preko mail-a sta ti nije jasno oko koda i iz iskustva znam da ce ti on uvek odgovoriti inace Laslo Kraus ti je jedan od najboljih predavaca koje sam ja video na etf-u... |
25.8.2006, 1:49 | #230 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
@BobaL
Pre bih se složio sa konstatacijom da je Laslo Kraus postao veoma rado korišćeno sredstvo za "žvakanje" u prepirkama oko toga koji je autor knjiga o programiranju "naj,naj,naj" bez trunke zdrave argumentacije na tu temu. Lično ne poznajem Krausa niti sam imao priliku da budem na nekom od njegovih predavanja pa ću na ovom mestu reći samo da sudeći po njegovoj reputaciji predstavlja stručnjaka u svojoj oblasti i to ne želim da osporavam. Ono što hoću ovde da osporim jeste činjenica da je kao autor pogodan za početnike pošto su oni ovde ciljna grupa. Naime, sam Kraus u svim predgovorima svojih knjiga vezanih za C++ tvrdi kako je za njihovo korišćenje potrebno uspešno savladati C programski jezik. Da je to istina složiće se svako ko prođe par glava njegovih knjiga na temu C++-a. Ono što mi se posebno ne sviđa (sada kao već slobodno mogu da kažem iskusnijem C i C++ programeru) jeste način na koji pristupa objašnjenju klasa i onome što one u suštini treba da predstavljaju. Jednostavno, principijelno gledano previše se vezuje za C i zanemaruje da na praktičnom primeru demonstrira koje su njegove najbitnije prednosti. Ovo za posledicu ima "iz neba pa u rebra" pristup učenju koji definitivno nije za početnike. Sledeća stvar koja nije vezana samo za njegove naslove već uopšte za sve knjige koje su prevedene na srpski jeste problem oko određenih naziva. Pomenuću samo najbanalniji primer kao što su "prevodioci" itd. Zato sam uvek bio za opciju da svako ko zna engleski jezik počne odmah sa učenjem iz originalnih stranih izdanja. Tačno je da su prva izdanja uvek puna grešaka (posebno u slučajevima kada je u pitanju kod kod koga je dovoljna jedna jedina greška da "ode mas' u propas'"). Što se tiče SAMS-a takođe nisi u pravo iz jednog veoma jednostavnog razloga što su sva SAMS-ova izdanja upravo namenjena početnicima i da je "Teach yourself in..." ubedljivo najprodavanija kolekcija knjiga u svetu za početnike. Takođe, sve SAMS-ove knjige su precizne, "straight-to-the-point" orijentisane i što je veoma, veoma važno izuzetno vode računa o izboru primera na osnovu kojih se objašnjavaju najvažniji termini. Hoćemo li možda da uporedimo na par ljudi ko će pre da ukapira klase i to na primeru iz "Teach yourself C++ in 21 days" ili na onima koji se koriste u Krausovim knjigama. Prva knjiga se sada i posle petog izdanja drži starog dobrog "Meow()" primera dok je Kraus menjao primere. Naravoučenije naravno treba da bude da za početak nikako ne treba koristiti Krausa već nešto iz SAMS-ove kolekcije a da kasnije, po želji, i Kraus može doći na red za seciranje |
28.8.2006, 18:57 | #231 |
Kekule Mekule
|
Re: objasnjenja pocetniku
Ako cemo ko je naj naj uzmimo Programing Language C++ od Bjarne Stroustrupa pa cepajmo.
Kod:
/************************************************************************************************** * Naziv Aplikacije: Recnik * * Verzija: 1.0.0.1 * * Opis: Jednostavan Englesko - Srpski recnik * * Autor: ANDROSS * * Razvojno Okruzenje: Microsoft Windows XP SP2, Dev-C++ 4.9.9.2, Intel Celeron 2.0GHz, 768 MB RAM * * Datum: 24/08/06 21:11 * **************************************************************************************************/ #include "Recnik.h" int main() // Ovo definitivno znamo :) { NadjiRec(); // Pozivamo funkciju koja trazi rec // Moja izvedba system("pause") char x; cout << "***** Pretisnite si bilo sta pa enter da bi ste izasli *****" << endl; cin >> x; return 0; // Sve je u redu pa ubise Milosa... ovaj Recnik :) } |
28.8.2006, 18:58 | #232 |
Kekule Mekule
|
Re: objasnjenja pocetniku
Kod:
#include <iostream> // Ovo i vrapci znaju sta znaci :) using namespace std; // Ovo takodje :) const char* reci[70][2] = // Nasa baza reci - pointer na dvodimenzionalni niz. { {"dog", "pas"}, {"cat", "macka"}, {"sheep", "ovca"}, {"computer", "kompjuter"}, {"C++", "Najjaci OOP programski jezik!"}, {"basic", "osnova"}, {"dark", "mracno"}, {"brother", "brat"}, {"game", "igra"}, {"fear", "strah"}, {"ghost", "duh"}, {"shooter", "pucac"}, {"hell", "pakao"}, {"entertainment", "zabava"}, {"WoK", "SK"}, {"fat", "debeo"}, {"dragon", "zmaj"}, {"glass", "staklo"}, {"cow", "krava"}, {"war", "rat"}, {"i", "ja"}, {"you", "ti, vi"}, {"he", "on"}, {"she", "ona"}, {"it", "ono"}, {"sword", "mac"}, {"axe", "sekira"}, {"bow", "luk"}, {"crossbow", "samostrel"}, {"mace", "buzdovan"}, {"helm", "slem"}, {"cuirass", "oklop na gornjem delu tela"}, {"greaves", "oklop za noge"}, {"boots", "cizme"}, {"gloves", "rukavice"}, {"cube", "kocka"}, {"pyramid", "piramida"}, {"triangle", "trougao"}, {"square", "kvadrat"}, {"circle", "krug"}, {"chaos", "haos"}, {"craft", "vestina"}, {"star", "zvezda"}, {"red", "crveno"}, {"green", "zeleno"}, {"blue", "plavo"}, {"pig", "svinja"}, {"animal", "zivotinja"}, {"farm", "farma"}, {"goat", "koza"}, {"dead", "mrtav"}, {"dwarf", "kepec, patuljak"}, {"king", "kralj"}, {"queen", "kraljica"}, {"prince", "princ"}, {"princess", "princeza"}, {"devil", "djavo"}, {"angel", "andjeo"}, {"good", "dobro"}, {"bad", "lose"}, {"spirit", "dusa"}, {"splendid", "sjajan"}, {"evil", "zlo"}, {"alien", "vanzemaljac"}, {"spy", "spijun"}, {"worm", "crv"}, {"wizard", "carobnjak"}, {"zeal", "predanost"}, {"movie", "film"}, {"flesh", "meso"} }; |
28.8.2006, 18:59 | #233 |
Kekule Mekule
|
Re: objasnjenja pocetniku
Kod:
void NadjiRec() // Nasa funkcija koja sluzi za trazenje reci. { bool rad = true; // Promenljiva tipa bool oznacava rad aplikacije. char rec[30]; // Niz karaktera koji oznacava rec koju korisnik trazi. bool nadjeno; // Oznacava da li je rec nadjena. cout << "***** Dobrodosli u ANDROSS-ov Recnik *****" << endl << endl; while(rad) // Glavna while petlja.Ako je rad true onda se aplikacija izvrsava. { nadjeno = false; // Rec nije nadjena(pa na pocetku smo :P) cout << "Unesite rec na engleskom: "; cin >> rec; for(int i = 0; i < 70; i++) // Sporedna for petlja.Pomocu nje proveravamo bazu reci. { if(!strcmp(rec, reci[i][0])) // Ako reci ima u bazi... { cout << "Trazena rec je: " << reci[i][1] << endl; // ...odstampaj rec na srpskom nadjeno = true; // Nasli smo rec. break; // Iskacemo iz petlje(da bi smo optimizovali proces) } else if(!strcmp(rec, "kraj")) // Ako je rec kraj... { rad = false; // Odosmo iz aplikacije :) nadjeno = true; // Cisto da ne dobijemo poruku da nema te reci :) cout << "Hej rec je na srpskom!Aaa oces da izadjes :)" << endl; break; // Odeeeee :) } else { nadjeno = false; // Nismo nasli rec :( Smrc, smrc. } } if(!nadjeno) { cout << "Reci nema u bazi, pokusajte ponovo." << endl; } } } |
30.8.2006, 3:27 | #235 | |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Citat:
Može da proba sa tutorijalima SDL-a ali mislim da neće još uvek ništa da razume šta tamo piše. Moja preporuka je da se još malo zadrži na C++-u i da proba sa nekim ozbiljnijim primerom rečnika. Recimo verziju rečnika koja bi koristila klase i reference umesto dvodimenzionalnih nizova. Takođe, ovaj program može da se unapredi da klasa sadrži pokazivače na stringove kao svoje privatne članove što bi omogućilo veoma lako da postoji recimo više engleskih i srpskih reči koje odgovaraju jedna drugoj u okviru jednog objekta. Program je takođe moguće nadograditi upisom u fajl odnosno ispisom iz njega. Naravno fajl bi u stvari sadržao reči i isti bi mogao da bude dopunjavan. Naravno koristio bi se binarni upis. Znači za sada bi moja preporuka bila da još jednom ako nije do sada obrne SAMS-ovu knjigu iz C++-a i vidi šta nije razumeo do tada. Videće koliko će mu onda biti lak prelaz na rad sa naprednijim programima kakvi su tutorijali o SDL-u ili oni dati na GameDevNet-u. Pozdrav |
|
30.8.2006, 10:13 | #236 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.086
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: objasnjenja pocetniku
Evo primera jednostavnog SDL programa (http://sol.gfxile.net/gp/):
Kod:
#include <stdlib.h> #if defined(_MSC_VER) #include "SDL.h" #else #include "SDL/SDL.h" #endif SDL_Surface *screen; void render() { // Lock surface if needed if (SDL_MUSTLOCK(screen)) if (SDL_LockSurface(screen) < 0) return; // Ask SDL for the time in milliseconds int tick = SDL_GetTicks(); // Declare a couple of variables int i, j, yofs, ofs; // Draw to screen yofs = 0; for (i = 0; i < 480; i++) { for (j = 0, ofs = yofs; j < 640; j++, ofs++) { ((unsigned int*)screen->pixels)[ofs] = i * i + j * j + tick; } yofs += screen->pitch / 4; } // Unlock if needed if (SDL_MUSTLOCK(screen)) SDL_UnlockSurface(screen); // Tell SDL to update the whole screen SDL_UpdateRect(screen, 0, 0, 640, 480); } // Entry point int main(int argc, char *argv[]) { // Initialize SDL's subsystems - in this case, only video. if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError()); exit(1); } // Register SDL_Quit to be called at exit; makes sure things are // cleaned up when we quit. atexit(SDL_Quit); // Attempt to create a 640x480 window with 32bit pixels. screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); // If we fail, return error. if ( screen == NULL ) { fprintf(stderr, "Unable to set 640x480 video: %s\n", SDL_GetError()); exit(1); } // Main loop: loop forever. while (1) { // Render stuff render(); // Poll for events, and handle the ones we care about. SDL_Event event; while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: break; case SDL_KEYUP: // If escape is pressed, return (and thus, quit) if (event.key.keysym.sym == SDLK_ESCAPE) return 0; break; case SDL_QUIT: return(0); } } } return 0; } |
1.9.2006, 3:00 | #237 |
Deo inventara foruma
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
|
Re: objasnjenja pocetniku
Slabo
Dečica kreću polako u školu pa ih programski jezici više ne interesuju BTW, ANDROSS dobar ti je taj primer "mutant" iz Straustropove knjige Što ga brate toliko unakazi |
2.9.2006, 20:00 | #238 |
Kekule Mekule
|
Re: objasnjenja pocetniku
Joj ako mislis na recnik sam sam ga pravio!Stroustrupovu knjigu nisam ni pipnuo a da mi posaljes ono bre!BTW. nisu oni nista naucili sve dok ih mi ne ispitamo!!!!Samo holodoc salji ono hitno mi!
|
4.9.2006, 18:07 | #239 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.086
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: objasnjenja pocetniku
Naleteo sam na sledeći programčić u knjizi "Operating System Concepts" pa sam ga prebacio u funkciju jer cenim da nekom može zatrebati (meni je recimo davno trebalo al nisam znao kako da izvedem).
Dakle, znate da kad iz vašeg programa startujete drugi program, on se upali a vaš nastavlja s radom. E, u pojedinim situacijama može zatrebati da startujete drugi program ali da vaš ne nastavlja s radom dok se taj drugi ne završi (recimo kad pravite instaler koji startuje nešto i čeka da se to završi kako bi nastavio dalje). Tada taj drugi program pozovite pomoću ove funkcije: (treba inkludovati windows.h, a i stdio.h/iostream ako koristite printf/cout) Kod:
void RunAndWait(char *lpszFileName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); if (!CreateProcess( NULL, lpszFileName, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) ) { printf("CreateProcess failed.\n"); return; } WaitForSingleObject(pi.hProcess, INFINITE); printf("Child completed.\n"); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } |
5.9.2006, 22:10 | #240 |
Novi član
|
Re: objasnjenja pocetniku
Evo ga moj PRVI program
ali nije c++ vec samo c. Kod:
#include <stdio.h> main() { int i=1; int broj; printf("\n**********************************************************\n"); printf("Pocnite sa unosom brojeva!\n"); printf("Ako budete uneli broj 0 program ce prestati sa radom!\n"); do { printf("Unesite %d . broj i pritisnite <ENTER> !\n", i); scanf("%d", &broj); printf("Uneli ste broj %d\n", broj); i++ ; int j; int suma=0; for(j=1; j<=broj; j++) { suma+=j ; } printf("Suma svih brojeva izmedju vaseg broja i nule je %d\n", suma); printf("***********************************************************\n"); } while (broj>0); printf("Kraj programa jer ste uneli nulu"); } |
Bookmarks sajtovi |
Tagovi |
programiranje, tutoriali |
|
|