[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 639 korisnika na forumu :: 41 registrovanih, 11 sakrivenih i 587 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 11neco11, A.R.Chafee.Jr., aleksandar_tatic, aligrudici, amaterSRB, amir3045, chester_perry, Cufo, darkangel, docadoca, Dorcolac2, Dragan1998, Faki-Valjevo, ikan, jovan.simovic97, krunomiletic5, KUZMAR, ltcolonel, majorgaspar, MarKhan, Marko Marković, Mercury2, Metanoja, mračni čovek, Nikica Marinkovic, ofbeyond, Outis, pein, Predrag Macura, renoje2, rovac, sakota79, Snorks, Stole Balkanboy, VJ, vlahale, Voja1978, VVS2, Warhawk, Zandar, zola92