[4] Allegro - Glavni ciklus igre

[4] Allegro - Glavni ciklus igre

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3895
  • Gde živiš: Novi Sad,Klisa

U prošlom tutorijalu smo obradili kako da promenimo font, u ovom tutorijalu ćemo obrađivati glavnu petlju u kojoj se igra izvršava. Ovde ću pokazati kako da na ekranu prikažete reč, koja se pojavljuje slovo po slovo.

Napomena: Kod za C i C++ se razlikuju.




C
#include<allegro.h> //posto radimo sa stringovima, dodajemo biblioteku string.h #include<string.h> //Ovde sam uveo novu boju, za bojenje teksta na ekranu #define TamnoPlava makecol (44, 117, 255) #define SirinaEkrana 800 #define VisinaEkrana 600 int main() {    allegro_init();    install_keyboard();    set_color_depth(32);    set_gfx_mode(GFX_AUTODETECT_WINDOWED, SirinaEkrana, VisinaEkrana, 0, 0);    set_window_title("Lekcija 4");     //Uvodimo brojac kako bismo string koji imamo, slovo po slovo, kopirali u jedan prazan string.    int brojac = 0;     char rec[10] = "Lekcija 4";    char CrtajRec[10] = "";     //Uslov izlaska iz petlje nam je da brojac mora da bude veci ili jednak broju karaktera koje ima promenljiva rec.    while(brojac < strlen(rec))    {        CrtajRec[brojac] = rec[brojac]; //Posto ovde kopiramo karaktere, a ne citav string, mozemo koristiti operator dodele, a ne funkciju strcpy();        brojac++;        //Ispisujemo trenutni string na ekran.         textout_centre_ex(screen, font, CrtajRec, SirinaEkrana / 2, VisinaEkrana / 2, TamnoPlava, -1);         //Funkcija rest zamrzava ekran na odredjeni broj milisekundi, na isti nacin kao funkcija delay() ili Sleep();         rest(200);         clear_bitmap(screen);    }    allegro_exit();    return 0; } END_OF_MAIN()



C++
#include<allegro.h> //posto radimo sa stringovima, dodajemo biblioteku string #include<string> //Ovde sam uveo novu boju, za bojenje teksta na ekranu #define TamnoPlava makecol (44, 117, 255) #define SirinaEkrana 800 #define VisinaEkrana 600 int main() {    allegro_init();    install_keyboard();    set_color_depth(32);    set_gfx_mode(GFX_AUTODETECT_WINDOWED, SirinaEkrana, VisinaEkrana, 0, 0);    set_window_title("Lekcija 4");         //Uvodimo brojac kako bismo string koji imamo, slovo po slovo, kopirali u jedan prazan string.    int brojac = 0;    std::string rec = "Lekcija 4";    std::string CrtajRec = "";         //Uslov izlaska iz petlje nam je da brojac mora da bude veci ili jednak broju karaktera koje ima promenljiva rec. Za to koristimo metodu length()    while( brojac < rec.length())    {        CrtajRec += rec[brojac];        brojac++;                 /*Posto je Allegro 4 pisan za rad sa C-om, nas string mroamo konvertovati u string koji je Allegru citljiv.            To cemo uraditi dodavanjem .c_str() metode nakon pisanja imena  promenljive CratjRec.         */         textout_centre_ex(screen, font, CrtajRec.c_str(), SirinaEkrana / 2, VisinaEkrana / 2, TamnoPlava, -1);                         //Funkcija rest zamrzava ekran na odredjeni broj milisekundi, na isti nacin kao funkcija delay() ili Sleep();         rest(200);         clear_bitmap(screen);    }    allegro_exit();    return 0; } END_OF_MAIN()



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 852 korisnika na forumu :: 46 registrovanih, 5 sakrivenih i 801 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Aleksandar Kejic, babaroga2, bojank2, cicus91, cikadeda, Dimitrise93, dino.usa, Djokislav, DJUNTA, dozorni, drdoca, Drug pukovnik, Eyes Wide Shut, flash12, GreenMan, j-22orao, JOntra, kerinjo, Kožedub, Krstić, Kubovac, ljuba.b, matorigile, mgaji21, Milan A. Nikolic, Misha V, MORAVA1, Nennad, Niko Bitan2, Parker, pedjolino76, radoznao, renoje2, rovac, royst33, sasa.zoric, slonic_tonic, srbi, tamburski, theNedjeljko, vathra, vlvl, vobo, voja64, zooix