[3] Allegro - Menjanje fonta

[3] Allegro - Menjanje fonta

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

Posle dužeg vremena sam odlučio da napišem novi članak o Allegru. Smile



U prošlom tutorijalu smo videli kako da ispišemo tekst na ekranu. Taj font je jednoličan, i neće vam baš puno koristiti ako želite da napišete neku igru gde želite da imate slova različitih stilova, veličina i boja.

Allegro 4 ima jedan veliki problem, a to je da može isključivo da čita fontove koji su u .pcx formatu (a ne u .ttf koji je Windows-ov standardni fajl format za prikazivanje fontova). Taj problem je rešen u Allegru 5.
Zato moramo željeni font da konvertujemo iz .ttf u .pcx format.


To ćemo uraditi na sledeći način:

Arrow Preuzmite sledeću arhivu:
http://www.allegro.cc/files/ttf2pcx.zip

Ne morate je raspakivati, samo je otvorite i pokrenite ttf2pcx.exe




Izaberite Font i veličinu koju želite.

Napomena: Ukoliko želite dve različite visine za dva fonta istog stila, morate napraviti dva različita .pcx fajla.

Nakon odabira odgovarajućeg fonta, kliknite na dugme Export.

Ukoliko koristite IDE Code::Blocks, font eksportujte u folder gde vam se nalazi sam projekat.

Ukoliko koristite Visual Studio, font eksportujte u folder koji nosi ime kao vaš projekat, u folderu vašeg projekta (npr projekat se zove projc, i on se nalazi u podrazumevanoj lokaciji Visual Studija u kojoj se čuvaju projekti. Kod mene je to: C:\Users\Gara\Documents\Visual Studio 2012\Projects\projc U samom folderu videćete još jedan folder sa imenom projc. Tu trebate smestiti vaš font.).







Kada smo odradili najteži deo posla, preostaje nam samo da taj font dodamo u naš kod. Naš kod izgleda ovako:


#include<allegro.h> /*Ovde uvodimo ova tri makroa, kako ne bismo za ispis svakog teksta unosili parametre za boju. */ #define Crvena makecol(255, 0, 0) #define Zelena makecol(0, 255, 0) #define Plava makecol(0, 0, 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 3");    /*   FONT je struktura u kojoj se nalaze metode za manipulisanje fontovima.    Metoda load_font ucitava font koji smo napravili sa programom ttf2pcx tacnije to je njen prvi parametar    druga dva parametra treba da budu NULL, posto nam oni nece trebati.    Ukoliko font sa takvim imenom ne postoji, metoda vraca NULL    */    FONT *Font1 =load_font("font1.pcx", NULL, NULL);    /*Ovde mozete da primetite da je drugi parametar Font1, a to je ime ucitanog fonta.    Takodje, ukoliko je Font1 == NULL, program vam nece raditi.*/    textout_ex(screen, Font1, "Zdravo svete!", 100, 100, Zelena , -1);    textout_centre_ex(screen, Font1, "Zdravo svete!", SirinaEkrana /2, VisinaEkrana /2, Crvena, -1);    readkey();    destroy_font(Font1); /*Na kraju OBAVEZNO treba da se doda ova funkcija, kako ne bi doslo do memory leak-a. */       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 798 korisnika na forumu :: 8 registrovanih, 2 sakrivenih i 788 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: amaterSRB, Dorcolac, goxin, MaksicZoran, sasa76, Shilok, Srki94, voja64