Allegro Lab1: Kreiranje escape rutine i učitavanje custom font-a


Izvorni autorski tehnički članak,
AllegroLab1_Kreiranje escape rutine i učitatavanje custom font-a
Autor: Amar Tufo

Napomena: Pred vama se nalazi tehnički članak namjenjen isključivo programerima, hobistima i gikovima koji su upoznati sa teorijama kompjuterskih nauka, programiranja, C++ programskog jezika i ljudi koji poznaju šta je to objektno orjentisano programiranje. Ovaj članak predstavlja dio moje serije Allegro 2D game development čiji krajnji rezultat treba da bude 2D space shooter igrica.

Opis zadatka: 

Ovaj zadatak ima za cilj da demonstrira kreiranje primitivne while petlje kroz učitavanje i renderovanje custom fonta na zaslonu te zatvaranje aplikacije kreiranjem escape rutine. Ovaj AllegroLab1 je napisan koristeči Visual C++ 2008 Express (IDE), Allegro5 API, i kells.ttf font. U zadatku mora biti učitan navedeni font sa željenom porukom (recimo ime i prezime a velićina fonta mora biti 20 piksela).
Krajnji rezultat:

Ono što će biti rezultat ove aplikacije može se već vidjeti na gornjoj slici gdje je prikazan screenshot aplikacije po imenu Allegro_Fonts.exe koja u sebi prikazuje tri različite tekst poruke kroz tri različita tipa fontova i njihovih velićina.
Rješenje AllegroLab1 i izvorni kod:


//Allegro Lab 1
//Developer: Amar Tufo
//This Allegro sample shows how to render custom font on display
//and how to close program by pressing escape key
//Datum: 1, Oktobar. 2015

#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>
#include <allegro5\allegro_font.h>
#include <allegro5\allegro_ttf.h>

int main()
{
 int width = 640;
 int height = 480;
 
 bool exit = false;
 ALLEGRO_EVENT_QUEUE *event_queue = NULL;

 if(!al_init())
  return -1;

 ALLEGRO_DISPLAY *display = NULL;
 display = al_create_display(640, 480);

 if(!display)
  return -1;

//initialize font module
 al_init_font_addon();

 //initialize ttf module
 al_init_ttf_addon();

 //load my font
 ALLEGRO_FONT *font20 = al_load_font("kells.ttf", 25, 0);

//install allegro primitives
al_init_primitives_addon();

//install keyboard
al_install_keyboard( );

//register keyboard source
 event_queue = al_create_event_queue();
 al_register_event_source(event_queue, al_get_keyboard_event_source());

//create basic game loop
while(!exit)
{
//creating allegro event
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);
  
 //draw some text on the screen
al_draw_text(font20, al_map_rgb(255, 127, 127), 640/2, 480/2, ALLEGRO_ALIGN_CENTRE, "Developer: Amar Tufo");

//allow user to exit by pressing escape key
 if (ev.type == ALLEGRO_EVENT_KEY_UP)
   {
 if (ev.keyboard.keycode == ALLEGRO_KEY_ESCAPE)
   exit = true;
  
   }

//back buffer
 al_flip_display( );

 //clear back buffer 
 al_clear_to_color(al_map_rgb(0, 0, 0));

}

//Destroy the display
 al_destroy_display(display);


return 0;
}
Završni rezultat programa:


Ovo je završni rezultat programa i rješenje mog Allegro_Lab-a. Kao što vidite tekst poruka "Developer: Amar Tufo" je uspješno renderovana koristeči custom font kells.ttf koji je dat u zadatku.  Ja ne mogu ovako tekstualno da vam demonstriram escape rutinu te se ista nalazi u izvornom kodu koji je gore objavljen i izvorni kod možete slobodno prekopirati ukoliko vas zanima da i vi sami nešto napravite, neku aplikaciju koja će raditi kao moja. 

Toliko od mene za sada i do narednog čitanja. 
Share:

1 comment:

  1. Za reference o Allegro5 API-u i kako ga instalirati unutar Visual C++ i kompajlirati prvi Allegro5 program pogledaj ovaj link:

    http://amartufointeractive.blogspot.ba/2015/03/my-2d-game-dev-adventure-writing-our.html

    ReplyDelete

My Twitter news

Popular Posts

Recent Posts

Unordered List

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
  • Vestibulum auctor dapibus neque.

Pages

Theme Support

Need our help to upload or customize this blogger template? Contact me with details about the theme customization you need.