Tekst na ekranie komputera w allegro5 możemy wyświetlić na różne sposoby. Ładowanie czcionek: TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF, i innych, obsługiwane jest przez bibliotekę FreeType. Pliki, przykłady z kursu.
#include <allegro5/allegro.h> // Podstawowy nagłówek allegro
#include <allegro5/allegro_font.h> // Plik nagłówkowy dodający czcionki
int main()
{
al_init();
al_init_font_addon(); // inicjowanie czcionek
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
ALLEGRO_DISPLAY *okno = al_create_display(320,240);
ALLEGRO_FONT *font8 = al_create_builtin_font(); // wskaźnik do czcionki
unsigned char znak=32;
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb(0,0,0));
al_draw_text (font8,al_map_rgb(255,255,255),100,100,0,"Jakiś tam tekst.");
for(unsigned char y=0; y<14; y++)
for(unsigned char x=0; x<16; x++)
al_draw_textf (font8,al_map_rgb(255,255,255),8*x,8*y,0,"%c",znak++); znak=32;
al_flip_display();
}
al_destroy_font(font8);
al_destroy_display(okno);
return 0;
}
2. Czcionka bitmapowa.
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_image.h> // zawsze dodajemy plik nagłówkowy bitmap
int main()
{
al_init();
al_init_font_addon();
al_init_image_addon(); // bezwzględnie inicjować bitmapy
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
al_set_new_display_flags(ALLEGRO_WINDOWED);
ALLEGRO_DISPLAY *okno = al_create_display(400,150);
ALLEGRO_FONT *font_png = al_load_bitmap_font("courier_16.png");// wskaźnik do czcionki bitmapowej
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb_f(0.5,0.5,0.5));
al_draw_textf(font_png,al_map_rgb(255,255,255), 20, 20,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR" !");
al_draw_textf(font_png,al_map_rgb(255,255, 0), 80, 60,0,"I zażółć gęślą jaźń.");
al_flip_display();
}
al_destroy_font(font_png);
al_destroy_display(okno);
return 0;
}
3. Czcionka TTF- TrueType font
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>// zawsze dodajemy plik nagłówkowy ttf
ALLEGRO_USTR * Tekst = al_ustr_new ("Mamo, Tato, ja piszę w c++ !!!"); // Kodowanie UTF8 w C::B
int main()
{
al_init();
al_init_font_addon();
al_init_ttf_addon(); // pamiętaj o inicjowaniu!
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
al_set_new_display_flags(ALLEGRO_WINDOWED);
ALLEGRO_DISPLAY *okno = al_create_display(450,300);
al_set_window_title(okno,"Font TTF");
ALLEGRO_FONT * font_ttf = al_load_ttf_font("courbd.ttf",24, 0);// wskaźnik do czcionki ttf
ALLEGRO_FONT * font_ttf_16 = al_load_ttf_font("courbd.ttf",16, 1);
ALLEGRO_FONT * font_ttf_24 = al_load_ttf_font("courbd.ttf",24, 2);
ALLEGRO_FONT * font_ttf_30 = al_load_ttf_font("courbd.ttf",30, 4);
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb_f(0.5,0.5,0.5));
al_draw_ustr(font_ttf,al_map_rgb (0,0,255), 15, 40, 0,Tekst);
al_draw_textf(font_ttf_16,al_map_rgb(255,255,255), 10, 142,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_textf(font_ttf_24,al_map_rgb(255,255,255), 10, 158,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_textf(font_ttf_30,al_map_rgb(255,255,255), 10, 180,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_text (font_ttf_30,al_map_rgb(255,255, 0), 55, 220,0,"I zażółć gęślą jaźń.");
al_flip_display();
}
al_destroy_font(font_ttf);
al_destroy_font(font_ttf_16);
al_destroy_font(font_ttf_24);
al_destroy_font(font_ttf_30);
al_destroy_display(okno);
return 0;
}
#include <allegro5/allegro.h> // Podstawowy nagłówek allegro
#include <allegro5/allegro_font.h> // Plik nagłówkowy dodający czcionki
int main()
{
al_init();
al_init_font_addon(); // inicjowanie czcionek
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
ALLEGRO_DISPLAY *okno = al_create_display(320,240);
ALLEGRO_FONT *font8 = al_create_builtin_font(); // wskaźnik do czcionki
unsigned char znak=32;
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb(0,0,0));
al_draw_text (font8,al_map_rgb(255,255,255),100,100,0,"Jakiś tam tekst.");
for(unsigned char y=0; y<14; y++)
for(unsigned char x=0; x<16; x++)
al_draw_textf (font8,al_map_rgb(255,255,255),8*x,8*y,0,"%c",znak++); znak=32;
al_flip_display();
}
al_destroy_font(font8);
al_destroy_display(okno);
return 0;
}
2. Czcionka bitmapowa.
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_image.h> // zawsze dodajemy plik nagłówkowy bitmap
int main()
{
al_init();
al_init_font_addon();
al_init_image_addon(); // bezwzględnie inicjować bitmapy
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
al_set_new_display_flags(ALLEGRO_WINDOWED);
ALLEGRO_DISPLAY *okno = al_create_display(400,150);
ALLEGRO_FONT *font_png = al_load_bitmap_font("courier_16.png");// wskaźnik do czcionki bitmapowej
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb_f(0.5,0.5,0.5));
al_draw_textf(font_png,al_map_rgb(255,255,255), 20, 20,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR" !");
al_draw_textf(font_png,al_map_rgb(255,255, 0), 80, 60,0,"I zażółć gęślą jaźń.");
al_flip_display();
}
al_destroy_font(font_png);
al_destroy_display(okno);
return 0;
}
3. Czcionka TTF- TrueType font
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>// zawsze dodajemy plik nagłówkowy ttf
ALLEGRO_USTR * Tekst = al_ustr_new ("Mamo, Tato, ja piszę w c++ !!!"); // Kodowanie UTF8 w C::B
int main()
{
al_init();
al_init_font_addon();
al_init_ttf_addon(); // pamiętaj o inicjowaniu!
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
al_set_new_display_flags(ALLEGRO_WINDOWED);
ALLEGRO_DISPLAY *okno = al_create_display(450,300);
al_set_window_title(okno,"Font TTF");
ALLEGRO_FONT * font_ttf = al_load_ttf_font("courbd.ttf",24, 0);// wskaźnik do czcionki ttf
ALLEGRO_FONT * font_ttf_16 = al_load_ttf_font("courbd.ttf",16, 1);
ALLEGRO_FONT * font_ttf_24 = al_load_ttf_font("courbd.ttf",24, 2);
ALLEGRO_FONT * font_ttf_30 = al_load_ttf_font("courbd.ttf",30, 4);
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
al_clear_to_color(al_map_rgb_f(0.5,0.5,0.5));
al_draw_ustr(font_ttf,al_map_rgb (0,0,255), 15, 40, 0,Tekst);
al_draw_textf(font_ttf_16,al_map_rgb(255,255,255), 10, 142,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_textf(font_ttf_24,al_map_rgb(255,255,255), 10, 158,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_textf(font_ttf_30,al_map_rgb(255,255,255), 10, 180,0,"Witaj w Allegro %s",ALLEGRO_VERSION_STR"!");
al_draw_text (font_ttf_30,al_map_rgb(255,255, 0), 55, 220,0,"I zażółć gęślą jaźń.");
al_flip_display();
}
al_destroy_font(font_ttf);
al_destroy_font(font_ttf_16);
al_destroy_font(font_ttf_24);
al_destroy_font(font_ttf_30);
al_destroy_display(okno);
return 0;
}
Aby polskie literki były prawidłowo interpretowanew Code::Blocks należy w Settings->Editor...->Other settings w Use encoding when opening files: ustawić kodowanie na UTF-8, standardowo jest WINDOWS-1250.
5 komentarzy:
.....oby nie za rok ;]
oby nie za rok, ale jak do tej pory z problemami, ale jednak wszystko chodziło, tak teraz już w pierwszym tekście nie wyświetla na ekran znaków od pierwszej polskiej litery(ś) gdzie może tkwić problem?
http://cpp0x.pl/forum/temat/?id=15333
||=== Build: Debug in 1 (compiler: GNU GCC Compiler) ===|
ld.exe||cannot find -lallegro-4.9.11.lib|
ld.exe||cannot find -la5_font-4.9.11.lib|
ld.exe||cannot find -la5_ttf-4.9.11.lib|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 3 second(s)) ===|
Świetnie napisane. Pozdrawiam serdecznie.
Prześlij komentarz