next up previous
Next: Zoznamy alebo "Ide vláčik Up: grafika Previous: Timery alebo "Časovaná nálož."

Dátové súbory alebo "Organizácia skladu."

Keď človek píše nejakú hru, alebo iný multimediálny projekt, väčšinou k tomu potrebuje množstvo súborov. Bitmapy, fonty, animácie, zvukové sekvencie alebo MIDI súbory sú podstatnou súčasťou programu a ich vytvorenie často stojí veľkú námahu. Okrem ich vytvárania ale môže byť problémom aj ich rozumná organizácia. Napchať tisíc súborov do jedného adresára je jednak neprehľadné pre autora, jednak to robí problémy pri distribúcii a okrem toho je zbytočne pracné pri načítavaní päťšto bitmáp päťstokrát volať funkciu load_bitmap vždy s iným menom súboru.

Tento problém rieši Allegro s pomocou dátových súborov. Dátový súbor je súbor, do ktorého všetky vami vytvorené multimediálne súbory naukladáte. Takýto súbor potom v programe načítate naraz a nemusíte postupne otvárať všetky jednotlivé súbory.

Na vytváranie dátových súborov slúži špeciálny program grabber. Ak chcete začať vytvárať nový dátový súbor (napríklad s názvom data.dat), musíte mať samozrejme vytvorené nejaké súbory, ktoré do neho chcete uložiť. Potom napíšte
grabber data.dat
Objaví sa vám niečo podobné, ako to, čo vidíte na obrázku.

Grabber

Vo vašom prípade ale nebude vyplnená kolónka Header a v bielom obdĺžniku vľavo budete mať iba položku <root>. Do kolónky Header dajte meno hlavičkového súboru prislúchajúceho k dátovému súboru, ktorý práve vyrábate. Ten potom budete musieť includovať v programe, ktorý ten dátový súbor bude používať.

Nové položky do dátového súboru pridáte tak, že pravým tlačítkom myši kliknete na <root> v bielom obdĺžniku. Presuňte sa myšou nad New a potom vyberte, čo nového idete do dátového súboru pridať. Pre začiatok vyberte Bitmap. Grabber sa vás spýta, ako sa vaša bitmapka bude volať. Týmto menom sa budete odvolávať na bitmapku v programe. Zadajte Idylka. Keď meno zadáte, objaví sa vám v obdĺžniku nová položka. Zatiaľ ale obsahuje úplne inú bitmapu, než chcete. Kliknite pravým tlačítkom na novopribudnutú položku a vyberte Grab. Vyskočí vám dialógové okno, v ktorom si vyberiete, ktorý že to obrázok má byť tá Idylka (tento). To, čo ste si vybrali, uvidíte vpravo od bieleho obdĺžnika. Nová bitmapa je súčasťou dátového súboru. Rovnakým spôsobom sme pridali font VelkyFont (tento).

Keď už v dátovom súbore máte všetko, čo potrebujete, uložte ho na disk. (Postup je štandardný -- File, Save.) Potom môžete grabber opustiť príkazom Ctrl-Q.

Program, ktorý takto vytvorený dátový súbor využíva, môže vyzerať napríklad takto:

 1   #include <allegro.h>
 2   #include "data.h"
 3   
 4   int main()
 5   {
 6      DATAFILE *datafile;
 7
 8      allegro_init();
 9      install_keyboard(); 
10      set_color_depth(16);
11      set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0);
12
13      datafile = load_datafile("data.dat");
14   
15      blit(datafile[Idylka].dat, screen, 0, 0, 85, 10, 150, 150);
16      textout_centre(screen, datafile[VelkyFont].dat, 
17         "Lodicka", 160, 170, makecol(180, 180, 255));
18
19      readkey();
20      unload_datafile(datafile);
21
22      return 0;
23   }
24   END_OF_MAIN();

Na riadku 2 sa načíta súbor data.h. Je v uvodzovkách (musí sa preto nachádzať v tom istom adresári, ako zdrojový súbor) a vďaka nemu môžeme potom používať názvy ako Idylka a VelkyFont. Na riadku 6 je deklarovaný smerník na začiatok poľa, v ktorom sú uložené jednotlivé položky typu DATAFILE. Na riadkoch 8-11 sa štartuje Allegro (tento kód je zostručnený na maximálnu možnú mieru). Na riadku 13 sa konečne načíta náš dátový súbor. Jednotlivé jeho položky sú potom prístupné ako prvky poľa datafile. Keďže štruktúra DATAFILE je zložitejšia (ak chcete vedieť detaily, pozrite si manuál), smerník na samotné dáta prvej položky získate ako datafile[0].dat. Na riadku 15 takto vykreslíme našu bitmapu Idylka. (Vďaka hlavičkovému súboru data.h náš program vie, že Idylka má hodnotu 0. Pozrite si ten súbor, aby ste videli, ako je to urobené.) Na riadkoch 16-17 podobne našim fontom vypíšeme nápis "Lodicka". Na riadku 20 vypraceme dátový súbor z pamäti.



Úloha č.1 Pochopte a vyskúšajte.

Úloha č.2 S použitím funkcie stretch_blit natiahnite obrázok na celú obrazovku

Úloha č.3 Pridajte do súboru data.dat niektorú z predošlých bitmáp a vykreslite ju. Ako sa zmenil súbor data.h?

Úloha č.4 Upravte vzorový program z lekcie 5 tak, aby používal dátové súbory.


next up previous
Next: Zoznamy alebo "Ide vláčik Up: grafika Previous: Timery alebo "Časovaná nálož."
Anino Belan
anino(at)smnd.sk