[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: 3898
  • 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

  1. #include<allegro.h>
  2.  
  3. //posto radimo sa stringovima, dodajemo biblioteku string.h
  4. #include<string.h>
  5.  
  6. //Ovde sam uveo novu boju, za bojenje teksta na ekranu
  7.  
  8. #define TamnoPlava makecol (44, 117, 255)
  9.  
  10.  
  11. #define SirinaEkrana 800
  12. #define VisinaEkrana 600
  13.  
  14. int main()
  15. {
  16.    allegro_init();
  17.    install_keyboard();
  18.    set_color_depth(32);
  19.    set_gfx_mode(GFX_AUTODETECT_WINDOWED, SirinaEkrana, VisinaEkrana, 0, 0);
  20.    set_window_title("Lekcija 4");
  21.  
  22.     //Uvodimo brojac kako bismo string koji imamo, slovo po slovo, kopirali u jedan prazan string.
  23.    int brojac = 0;
  24.     char rec[10] = "Lekcija 4";
  25.    char CrtajRec[10] = "";
  26.  
  27.     //Uslov izlaska iz petlje nam je da brojac mora da bude veci ili jednak broju karaktera koje ima promenljiva rec.
  28.    while(brojac < strlen(rec))
  29.    {
  30.  
  31.        CrtajRec[brojac] = rec[brojac]; //Posto ovde kopiramo karaktere, a ne citav string, mozemo koristiti operator dodele, a ne funkciju strcpy();
  32.        brojac++;
  33.        //Ispisujemo trenutni string na ekran.
  34.         textout_centre_ex(screen, font, CrtajRec, SirinaEkrana / 2, VisinaEkrana / 2, TamnoPlava, -1);
  35.  
  36.         //Funkcija rest zamrzava ekran na odredjeni broj milisekundi, na isti nacin kao funkcija delay() ili Sleep();
  37.         rest(200);
  38.         clear_bitmap(screen);
  39.    }
  40.  
  41.    allegro_exit();
  42.  
  43.    return 0;
  44. }
  45. END_OF_MAIN()




C++
  1. #include<allegro.h>
  2.  
  3. //posto radimo sa stringovima, dodajemo biblioteku string
  4. #include<string>
  5.  
  6. //Ovde sam uveo novu boju, za bojenje teksta na ekranu
  7.  
  8. #define TamnoPlava makecol (44, 117, 255)
  9.  
  10.  
  11. #define SirinaEkrana 800
  12. #define VisinaEkrana 600
  13.  
  14. int main()
  15. {
  16.    allegro_init();
  17.    install_keyboard();
  18.    set_color_depth(32);
  19.    set_gfx_mode(GFX_AUTODETECT_WINDOWED, SirinaEkrana, VisinaEkrana, 0, 0);
  20.    set_window_title("Lekcija 4");
  21.  
  22.         //Uvodimo brojac kako bismo string koji imamo, slovo po slovo, kopirali u jedan prazan string.
  23.    int brojac = 0;
  24.    std::string rec = "Lekcija 4";
  25.    std::string CrtajRec = "";
  26.    
  27.     //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()
  28.    while( brojac < rec.length())
  29.    {
  30.  
  31.        CrtajRec += rec[brojac];
  32.        brojac++;
  33.        
  34.         /*Posto je Allegro 4 pisan za rad sa C-om, nas string mroamo konvertovati u string koji je Allegru citljiv.
  35.            To cemo uraditi dodavanjem .c_str() metode nakon pisanja imena  promenljive CratjRec.
  36.         */
  37.         textout_centre_ex(screen, font, CrtajRec.c_str(), SirinaEkrana / 2, VisinaEkrana / 2, TamnoPlava, -1);
  38.                
  39.         //Funkcija rest zamrzava ekran na odredjeni broj milisekundi, na isti nacin kao funkcija delay() ili Sleep();
  40.         rest(200);
  41.         clear_bitmap(screen);
  42.    }
  43.  
  44.    allegro_exit();
  45.  
  46.    return 0;
  47. }
  48. 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 1066 korisnika na forumu :: 58 registrovanih, 6 sakrivenih i 1002 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: BLACKBIRD201284, Boban0312, bokisha253, bukefal, burevestnik, celik, Fabius, gale48, Gargamel008, ilija.24, ivran064, Jeremiah, Jezekijel, jodzula, kreker, Kubovac, Lieutenant, lord sir giga, lukisa, MarkoD, markoni.slo, menk, mercedesamg, Mi lao shu, Mig 29, MiG-29M2, milenko1980, Mitogna, Mskok, muaddib, Natuzzi, nebkv, nekdo, Nemanja.M, nemkea71, Niko Bitan, Orc, Papadubi, pceklic, PitterBg, PlayerOne, Prečanin30, PrincipL, Razdroid, royst33, semper_fidelis, sixpac, Slavian, Srle993, Vanderx, vathra, vensla, virked, Vlado82, Volkhov-M, x011, Zvrk, Đole64