Program editor umoznuje vytvaret, ukladat i nacitat z disku graficke soubory s priponou gra
Delphi & Pascal (česká wiki)
Kategória: KMP (Klub mladých programátorov)
Autor: Martin Koleček
Program: Graeditor.pas
Súbor exe: Graeditor.exe
Príklady: Manual.txt
Autor: Martin Koleček
Program: Graeditor.pas
Súbor exe: Graeditor.exe
Príklady: Manual.txt
Program editor umoznuje vytvaret, ukladat i nacitat z disku graficke soubory s priponou gra. Jedna se o muj vlastni format ve kterem je zakodovana grafika 160x200 pixelu s barevnou hloubkou 16 barev vybranych ze 65535ti. Vysledny graficky soubor zabira 9049 bajtu takze je vhodny pro prilinkovavani napr. do her v assembleru. V programu je pouzito zakodovani a rozkodovani. Po rozkodovani zabira stranka 160x200x16 32KB zakodovana 9KB. Program obsahuje napovedu ve ktere je ovladani editoru. Vse je na klavesnici. Mys neni nikde v editoru nijak podporovana. V zadnem pripade s editorem nejdou otevirat soubory gra co byly napr ve starych DOSovych hrach, POZOR tam je struktura jejich gra souboru uplne jina nez ta moje. Podrobnosti o mem formatu gra a o editoru jsou v manualu vcetne kontaktni adresy.
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} Manual k programu Editor {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} Obsah: 1. Vyznam editoru 2. Graficky format gra 3. Prace s editorem 4. Kontaktni adresa {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} 1. VYZNAM EDITORU Editor je primarne urceny ke generovani souboru s priponou gra ktere se daji prilinkovat k programum/hram napsanym v Assembleru. Je vsak docela snadno mozne i pouziti v Pascalu, staci si napsat prevodnik z desitkove do binarni soustavy a naopak. {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} 2. GRAFICKY FORMAT GRA Soubor s priponou gra je muj vlastni format takze neni mozne s editorem otevirat soubory s priponou gra ktere byly pouzite napr ve starych hrach. Tam je struktura souboru zcela odlisna od te moji. V mem souboru jsou 3 hlavni bloky dat: prvnich 8000 bajtu dalsich 1000 bajtu a nakonec 48 bajtu a jeste jeden bajt Prvnich 8000 bajtu obsahuje hodnoty 0 1 2 a 3 a to tak ze jeden bajt uchovava 4 hodnoty. Kazde dva bity obsahuji jednu hodnotu. Jeden bajt tedy 8 bitu obsahuje 4 hodnoty. (4 pul-nibbly) O techto cislech bude jeste psano dale. (priklad : 01 10 11 00 binarne) Dalsich 1000 bajtu obsahuje hodnoty 0..15. Kazde 4 bity obsahuji jedno cislo. V jednom bajtu 2 nibbly (napr. 0010 0111 binarne) Vice viz. nize. A poslednich 48 bajtu. Zde jsou jiz nezakodovane hodnoty pro paletu barev. Prvni 3 bajty z techto 48mi reprezentuji hodnoty Red Green Blue pro barvu palety cislo 0, dalsi 3 bajty obsahuji RGB pro barvu 1 atd az barva 15. Barvy pro paletu jsou v editoru vybirany z rozsahu 0 az 65535 barev. Pro jednu stranku viz. nize je mozno pouzit max 15 barev (nulta barva je rezervovana pro pruhlednou) Na konci souboru s priponou gra je jeste jeden bajt. Ten udava cislo stranky. Jednou strankou je mineno 160x200 pixelu v barevne hloubce 16 barev vybiranych ze 65535ti. Je totiz predpokladano ze soubory gra budou pouzity i ve vetsim mnozstvi nez jen jeden pro cely program/hru a potom by nastal problem s tim ze to ma mit cele jen 16 barev a proto je s pouzitim tohoto posledniho bajtu umozneno nastavovat paletu barev tak ze se vynasobi cislo stranky*16 + cislo barvy a tak se barevna paleta nastavi ne vzdy na prvnich 16 barev ale treba na barvy 32 az 48 pro jinou stranku. Ted vysvetlim jak jsou k jednotlivym pixelum prirazena cisla barev. Pro snadne pochopeni je nutno uvest ze editor ma generovat grafiku podobnou na 8mi bitove nintendo (NES) ktere se prodavalo u Vietnamcu v 90. letech. Na Nintendu je maximalni velikost jednoho vykreslovaneho spritu 8x8 pixelu. Cela scena, vsechny objekty jsou poskladane ze ctverecku 8x8 pixelu a v tomhle editoru je na to bran zretel. Kazdy takovy ctverecek muze mit hloubku barev maximalne 4 barvy a z toho jedna je pruhledna takze 3. Ve druhem bloku dat (1000 bajtu) jsou obsazeny ctverice barev jednotlivych ctverecku. Prvni 2 bajty (4 nibbly) obsahuji cisla barev pro prvni ctverec 8x8 pixelu na strance 160x200 pixelu. Po rozkodovani souboru s priponou gra dostaneme stranku zabirajici 32KB. Da se rozdelit na ctverecky 8x8 pixelu a vyjde jich 20x25 ctvercu po 8x8 pixelech. Dohromady 500 ctverecku. Na jeden ctverecek tedy pripadaji 2 bajty z druheho bloku dat v souboru. 500 x 2B = 1000B To jakou barvu ma ktery pixel v jednotlivych ctvereccich je definovano v prvnim bloku dat v souboru (v tom co ma 8000 bajtu). Vezmeme si prvni ctverecek ten co je v rohu nahore vlevo na strance 160x200. Prvni dva bajty z prvniho bloku dat (8000B) obsahuji 8 pul-nibblu. Po rozkodovani dostaneme 8 bajtu s cisly 0 1 2 a 3 ktere znamenaji ktera barva z prislusne ctverice se ma pouzit. Prislusna ctverice tj. v nasem pripade pro prvni ctverecek tedy prvni dva bajty z druheho bloku dat v souboru (1000B). {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} 3. PRACE S EDITOREM Po spusteni se objevi textove menu s hlavni listou nahore. Lista obsahuje: Napisy MENU dale EDITOR GRAFIKY pak je tam "soubor=" a sem se dosadi nazev souboru ktery se bude editovat, dal je na liste cislo stranky a F10=EXIT. Sipkami nahoru dolu vybirame polozku z menu ktere se rozbali pri stisku klavesy sipka dolu nebo muzeme pouzit klavesove zkratky. F4=vytvorit novy soubor, F3=otevrit soubor, F2=ulozit (nezapominejte ulozit, program k tomu sam nikde nevyzyva) F1=zobrazi napovedu kde je popsano jak se co ovlada, F5=spusit editor (je nutne nejdriv mit zadane jmeno souboru) F10=konec programu a klavesy PgUp a PgDn meni cislo stranky (pri ulozeni se toto cislo uklada jako posledni bajt souboru). Kdyz se zadava jmeno editovaneho souboru tak vzdy ve formatu jmeno bez pripony napr. soubor01 a enter. Priponu gra si editor dosazuje sam a to jak pri vytvoreni noveho souboru tak pri otevirani jiz existujiciho. Pokud mame zadane jmeno souboru ozve se zvuk ktery signalizuje uspesne otevreni nebo vytvoreni souboru. Nyni muzeme spusit graficky rezim. To provedeme stiskem F5 nebo z menu EDITOR a enter. Objevi se cerna obrazovka s obddelnikem vpravo s ctvercem uprostred a maly ctverecek vlevo nahore. Nachazime se v hlavnim okne editoru. Zde muzeme prohlizet celou editovanou stranku a taky jedine zde muzeme pracovat se schrankou 8x8 pixelu. Sipkami pohybujeme malym ctvereckem vlevo na editovane strance 160x200 pixelu kterou vidime celou (cela leva polovina obrazovky). Klavesou C se uklada obsah toho maleho ctverecku vlevo do schranky a klavesou V se vklada obsah schranky na editovanou stranku. Kdyz neco do schranky ulozime objevi se nahled toho co je ve schrance ve ctverci vpravo uprostred toho obdelniku a taky pod timto ctvercem se objevi ctverice barev toho policka 8x8 pixelu ktere mame ve schrance. Z hlavni obrazovky editoru kterou jsme spustili F5 je mozne prechazet na dalsi obrazovky editoru s dalsimi funkcemi. Pomoci F8 odtud spustime editor jednotlivych barev. Pomoci F7 spustime editor jednotlivych ctveric barev pro kazdy ctverecek 8x8 pixelu. A pomoci F6 spustime obrazovku kde se kresli jednotlive pixely grafiky. Kdyz spustime nekterou z techto obrazovek tak pred prechodem na jinou se musime vzdy nejprve vratit na hlavni obrazovku pomoci F5 nebo Esc. Doporucuji F5 protoze pomoci Esc se z hlavni obrazovky take vracime do textoveho menu. Preskoceni by nemelo nastavat ale mohlo by proto navrat na hlavni obrazovku F5. Pro jistotu uvedu priklad. Jsem na hlavni obrazovce s celou editovanou strankou vlevo a nahledem schranky vpravo a prejdu stiskem F8 na obrazovku kde se michaji barvy. Namicham par barev a ted chci prejit na obrazovku kde se nastavuji ctverice barev pro jednotlive ctverecky 8x8 pixelu. Musim se nejprve vratit na hlavni obrazovku stiskem F5 nebo Esc a teprve potom muzu stiskem F7 prejit na obrazovku kde se nastavuji ctverice barev jednotlivym polickum 8x8 pixelu. Obrazovky F8 F7 a F6 nereaguji samy na sebe navzajem, vzdy je nutne se vratit na hlavni obrazovku stiskem F5. F8 - spoustime editor barev: Z hlavni obrazovky editoru jsme spustili editor barev. Zde sipkami doleva a doprava vybirame kterou barvu chceme editovat (0 az 15) a klavesami Insert a Delete pridavame a ubirame hodnotu cervene {R} Home a End pridavame a ubirame hodnotu zelene {G} PgUp a PgDn pridavame a ubirame hodnotu modre {B} Stiskem F2 muzeme zmeny barev ulozit. Pro navrat na hlavni obrazovku stiskneme F5 nebo Esc. F7 - spoustime editor ctveric barev pro policka 8x8 pixelu: Z hlavni obrazovky editoru jsme spustili editor ctveric. Kurzorovymi sipkami vybirame barvu z vyberu barev vpravo. Tam kde je kurzor tak ta barva se prirazuje. Klavesami IJKL pohybujeme malym kurzorem vlevo. Leva polovina obrazovky reprezentuje editovanou stranku a maly kurzor se po ni pohybuje po krocich 8 pixelu (po jednotlivych ctvereccich). IJKL pouzivame jako kurzorove sipky. Klavesami ASDF prirazujeme ctverecku jeho ctverici barev. Stisk A nastavi barvu 1, stisk S nastavi barvu 2, stisk D nastavi barvu 3 a stisk F nastavi barvu 4. Nastavi se ta barva kterou mame vybranou velkym ctvercem v prave casti obrazovky. Hned po stisku A,S,D nebo F se prislusna barva objevi v malem ctverecku vlevo coz znamena ze je pro dany ctverecek nastavena a zaroven se objevuji nastavene barvy v prave polovine obrazovky dole. Pri prechodu malym kurzorem na jiny ctverecek se hned meni ctverice barev na prave polovine obrazovky dole. Zmeny ulozime stiskem F2. Pro navrat na hlavni obrazovku stiskneme F5 nebo Esc. F6 - spoustime kreslici editor Z hlavni obrazovky jsme spustili pomoci F6 editor na kresleni. Predpoklada se ze jiz mame NAMICHANYCH 16 BAREV a MAME JEDNOTLIVYM CTVERECKUM 8x8 PIXELU PRIRAZENY JEJICH CTVERICE BAREV takze muzeme kreslit. Kurzorovymi sipkami pohybujeme velkym ctvercem na leve polovine obrazovky. Tento ctverec predstavuje vyber toho co bude "pod lupou". Na prave polovine obrazovky mame malinky ctverecek ktery je kreslici kurzor. Timto kurzorem pohybujeme klavesami IJKL a klavesy ASDF slouzi pro vkladani pixelu. Malym kurzorem vpravo muzeme pohybovat v rozsahu ktery je dany velkym kurzorem. Velky kurzor se pohybuje po krocich 8 pixelu, maly kurzor po jednom pixelu. Kdyz malym kurzorem najedeme na oblast ktera nema nastavenou svou ctverici barev z obrazovky F7, kreslici barvy zmizi. Je nutne nejprve nastavit pro dany ctverecek 8x8 pixelu jeho ctverici barev. Kdyz malym kurzorem najedeme z jednoho ctverecku 8x8 do oblasti druheho ctverecku, kreslici barvy se automaticky nastavi na ctverici druheho ctverecku. Zmeny muzeme prubezne ukladat stiskem F2. F5 nebo Esc pro navrat na hlavni obrazovku. Jak zacit pracovat s editorem krok za krokem: 1. stisk F4 = zadat jmeno noveho souboru 2. stisk F5 = hlavni obrazovka editoru 3. stisk F8 = namichat barvy 4. stisk F5 = navrat na hlavni obrazovku 5. stisk F7 = nastavit ctverice barev pro jednotlive ctverecky 8x8 pixelu 6. stisk F5 = navrat na hlavni obrazovku 7. stisk F6 = kreslici editor (ovladani: kurzorove sipky + IJKL + ASDF) 8. stisk F5 = navrat na hlavni obrazovku 9. stisk Esc = navrat do textoveho menu 10. stisk F2 = ulozit 11. stisk F10 = konec {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX} 4. KONTAKTNI ADRESA Kritiku nebo pokud potrebujete poradit s editorem nebo s mym formatem gra posilejte na mail kolecek.martin@email.cz Mam i unit pro Pascal ktery nacita soubory gra a vykresluje grafiku takze pokud jste docetli az sem a mate stale zajem muzete mi napsat a ja vam poslu unit pro Pascal ktery pracuje s formatem gra. {XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}