Možná jste si všimli (a pokud ne, tak jste byli pravděpodobně posledních 14 dní na výletě na Serverním pólu), že delší dobu pracuji na hře Voltix: Escape Protocol a jak jsem již několikrát zmiňoval (jednou velmi podrobně), vznikl pro tuto hru editor levelů. Jelikož mi vyhovoval způsob práce a ovládání tohoto editoru, a chyběl mi editor spritů, rozhodl jsem se udělat něco v podobném stylu (když už mám hodně věcí udělaných v editoru levelů a mohu tyto věci použít).
Víte jak to je, rozhodnete se udělat editor spritů a zjistíte, že by bylo fajn tam udělat editor znaků a když už máte editor znaků, proč neudělat editor UDG znaků - což je v podstatě to samé. Pak nad tím vším přemýšlíte, jste plni euforie a řeknete si - když už takto kreslím na obrazovce, nemohl bych kreslit i celé obrázky v ZX formátu? Musím se přiznat - ja jsem na používání grafických editorů lama - nakreslit černobýlý obrázek umím, ale jakmile si začnu hrát s barvami, tak narazím na problém - koncepce attr kolizí mi vezme chuť cokoliv hezčího nakreslit. Tak jsem si řekl, že pokud by měl existovat grafický editor z mé dílničky, tak by mohl fungovat jako normální grafický editor a tyto věci se snažit eliminovat (to znamená podle potřeby by invertoval bitmapu 8x8 a prohazoval INK/PAPER)... V plánu je i používání vrstev a podobných zvěrstev, na které jsme si zvykli z moderních grafických editorech na vícebitech, ale uvidíme, zda se mi vše povede implementovat.
Cílem ZX PixelPaste je proto vytvořit jedno společné prostředí pro obrazovky, sprity a fonty, aby nebylo nutné polovinu práce dělat ručně nebo mezi několika různými utilitami přepínat.
Program bude, jak jsem již napsal, rozdělený do tří hlavních sekcí: Screen Editor, Sprite Editor a Font Editor.
První částí je editor obrazovky, určený pro práci s klasickou ZX Spectrum grafikou. Počítá se tu s editací celé obrazovky, s prací nad atributy i s běžnými kreslicími operacemi, které jsou při kreslení potřeba.
Součástí editoru je kreslicí plocha a sada nástrojů, mezi kterými nebude chybět:
Počítá se také s vrstvami, takže bude možné přidávat nové vrstvy, duplikovat je, mazat, čistit a měnit jejich pořadí. To se hodí hlavně ve chvíli, kdy člověk skládá složitější obrazovku a nechce všechno dělat destruktivně v jedné jediné vrstvě. Bude to mít samozřejmě své limity dané ZX Spectrem a jeho uspořádáním VideoRamky, ale myslím, že to bude velmi užitečná věc.
Druhou částí je Sprite Editor, který je pro vývoj hry naprosto zásadní - doteď jsem sprity "kreslil" v asm souboru pomocí DB, což není něco co většinou dává pěkné vásledky... Počítám s těmito funkcemi:
Velká výhoda už v této části je, že Sprite Editor umí automaticky generovat masku spritu, kterou si ale budete moci sami upravit. Nebo budete chtít sprite bez masky - nebude to problém. Počítám s tím, že půjde exportovat do BIN, ASM (pomocí pseudoinstrukce DB v binární podobě) a půjdou stáhnout ukázkové rutinky na vykreslení spritu.
Třetí částí je Font Editor, který je určený pro tvorbu a úpravu znakových sad. Počítá se zde s editací jednotlivých znaků, s přehledem celé znakové sady a s možnostmi pro pohyb a hromadnější úpravy. Editor má umožnit konkrétně:
Program umožní stáhnout i ukázkové rutinky umožňující tisk na obrazovku.
V současné době mám připravený layout celého programu a funguje import obrazovek SCR, spritů a fontů. Sprite Editor už navíc umí automatickou masku spritu. Toto už aktuálně není pravda - když jsem článek dokončil, začínal jsem si hrát s vrstvama ve screen editoru a myslím, že to začíná fungovat velice dobře (i když atributy to "malinko" komplikují). Když to takhle půjde dál, tak se opravdu těším na finální podobu.
Jak jsem již napsal, hodně věcí použiji již z toho co mám napsáno v Editoru levelů pro Voltix, ale i tak tam budou části, u kterých se pravděpodobně zapotím - např. vrstvy (atributové kolize mezi vrstvami atd.), kopírování vybraných bloků,... Ale věřím, že to půjde a když se mi to povede, slibuji, že v tomto editoru spáchám obrázek pro příští Forever. A kdo ví - třeba se to nakonec bude hodit i někomu dalšímu, což je důvod proč jdu s tímto programem "ven" a nenechávám si to pro sebe. ;)