 |
Intro
|
Celé se to dìlí zhruba na 3 typy tagù:
- Buildable objects jsou v¹echny "objekty" co si musí¹ pøedem vytvoøit - definovat, napø obrázek, hudba, 3d objekt, text atd.
- Effects dìlají právì ty efekty, posunutím sprajtu zaèínaje 3d tunelem konèe.
- Parameters functions jsou parametry a funkce kterýma ovládá¹ efekty.
Pak je¹te dal¹ích 5 "speciálních" tagù:
- <MAIN> nazevdema |0|1 </MAIN> bez tohoto tagu ti to nepojede. Musí ho obsahovat ka¾dý skript.
- <KSCRIPT>...</KSCRIPT> ohranièuje èást s názvem dema a poøadím Kpartù.
- <ID> nazevdema </ID> název dema nebo Kpartu. Musí být souèástí tagu <KSCRIPT>...</KSCRIPT> a
taky <PLAY>...</PLAY>
- <PLAY> nazevKpartu |500|0|1 </PLAY> Taky musí být souèástí tagu <KSCRIPT>...</KSCRIPT>. Více.
- <KPART>...</KPART> v nìm jsou v¹echny ty efekty a parametry, zkrátka tady se to v¹echno odehrává. Kpart
musí mít taky své <ID> nazevKpartu </ID>, které uplatní¹ v tagu <PLAY>...</PLAY>
Udìlej si sérii objektù (Buildable objects), které mají tag co je identifikuje, název (label) a dal¹í parametry podle typu.
Napøíklad pro bitmapový obrázek: <Kimg> myimage1 |data/jamajka.iff </Kimg>, který vytvoøí "objekt" s názvem myimage1
pou¾itelný pro jakýkoli grafický efekt. Dál u¾ bude¹ pou¾ívat jenom název myimage1. Samozøejmì ho
mù¾e¹ pou¾ít vícekrát i v rùzných "rolích". Následuje èást <KSCRIPT>...</KSCRIPT>
která obsahuje název dema a poøadí "pøehrávání" Kpartù. Kparty mù¾e¹ pøehrávat rychle,
pomalu, tøeba od pùlky nebo pozpátku. Mohou se i opakovat, pøehrávat ka¾dý jinou rychlostí a pod.
Pøehrávání zaèíná od zhora dolù. A koneènì èásti <KPART>...</KPART> (nebo jenom jedna).
Kparty se skládají z "efektù" a jejich parametrù. Je potøeba vìdìt ¾e efekty se chovají jako vrstvy. To znamená
¾e kdy¾ mám tøeba 3 efekty pøes sebe, efekt co je zapsán jako první v poøadí bude vespod a tøetí bude
navrchu. V Kpartu nemusí být ¾ádná grafika ale tøeba jenom spustí hudbu nebo resetne paletu.
|

Obrázek ukazuje "demo" s názvem myscript slo¾ené ze dvou objektù Kimg a dvou Kpartù. Ka¾dý Kpart má dva efekty
(SetPalette a Sprite). |
|
Tag <MAIN> mù¾e být klidnì i na konci skriptu, stejnì taky <KSCRIPT>, nemusí¹ tedy striktnì zachovávat
poøadí tìchto èástí jako na obrázku. Karate si to v¾dy najde a podle názvù správnì identifikuje.
Kdyby nìco nehrálo, vyhodí celkem srozumitelnou hlá¹ku i s èíslem øádku kde se vyskytla chyba. Sláva autorovi.
|
|
V Karate mù¾e¹ psát komentáø, témìø kamkoliv ale ne dovnitø tagu (ve tvaru: <Tag>... uvnitø
...</Tag>). Jsou dvì vyjímky, mù¾e¹ psát komentáøe do <KPART>...</KPART> tagu a
<KSCRIPT>...</KSCRIPT> tagu.
|

Takhle je to správnì. |

Takhle tedy ne. |
|
|
Jinak do tagu se prostì komentáø psát nemá (ale to dá rozum). V textu co je mezi <KPART> a </KPART>, se Karate zajimá
pouze o 2 typy tagù: <ID>...</ID> a <Fx>...</Fx>. Je¹tì teda <Pa>...</Pa>, ale ty jsou souèástí <Fx>. V
textu mezi <KSCRIPT> a </KSCRIPT> se Karate divá jen po <ID>...</ID> a <PLAY>...</PLAY>. Vlastnì v¹echen text co není
uzavøen v tagu Karate ignoruje a pova¾uje za komentáø, je tedy velmi jednoduché psát komentáøe.
Dùle¾ité je vìdìt ¾e tagy se musí psát pøesnì.
<Kpart>=dobøe, < Kpart > nebo <Kpart > nebo < Kpart>=¹patnì. Zmìní¹-li znak nebo dá¹ mezeru v
tagu, tak se vypne a je pova¾ován za komentáø! To je ale taky výhoda kdy¾ chce¹ vypnout nìjaký efekt, nemusí¹ ho
nìjak pøesunovat mazat atd. jenom ho vypne¹.
V¹echen text je non case-sensitive. <Kpart> je stejné jako <KPArt> nebo <kPaRt> Názvy (label) jsou taky non-case-sensitive, a mohou obsahovat
mezery. Jen mezery a tabulátory pøed a za názvem budou oøíznuty. V názvech mù¾e¹ pou¾ít i paznaky.
Vet¹ina tagù potøebuje víc parametrù, ty se od sebe oddìlují znakem "|" (pipe).
Karate bì¾í v 8bit re¾imu, tak¾e v¹echny obrázky textury apod. musí mít maximálnì 256
barev.
Vìt¹ina bitmap mù¾e mít jakoukoli velikost (no milion pixelù jsem nezkou¹el), ov¹em i tady je pár vyjímek.
Bitmapy co chce¹ pou¾ít jako texturu (<t3dMapping>) nebo "deform texturu" musí mít 256x256 pixelù.
Bitmapa pro (<Kcolortable>) musí mít 256x128 pixelù.
"Lightmapa" (<t3dFlatLightMap>) ta musí mít 64x64 pixelù.
Ve speciálních pøípadech má lightmapa 64x64 pixelù a 64 odstínù ¹edé, pro "odlesky" atd. (<t3dGoureau> ,
<t3dFlatLightMap>)
O nahrání bitmap se postarají AmigaOS datatypy. Iff formát se hodí asi nejlépe , mimoto ¾e je taky nejvíc Amiga :) Co se
týèe hudby Karate umí pøehrávat moduly ve formátu DBM (DigiBooster) skrze AHI a formát p61 (4ch) pou¾itelný pro Paula
Amigy. Na "ne Paula" Amigách mù¾e dìlat problémy. Nástroj na konverzi .mod do .p61 je na Aminetu.
|
Snad v¹echno se v Karate "toèí" okolo pozice, èasu a palety.
Pozice...
V pøípadì pozice zapomeò na rozli¹ení (ve smyslu screen resolution). Karate zkrátka v¾dy bere screen jako ètverec kde
pozice X1=0.0 Y1=0.0 je levý horní roh a X2=1.0 Y2=1.0 jak jistì tu¹í¹, pravý dolní roh. Z toho vyplývá ¾e
pozice støedu je 0.5 . Tady to autor geniálnì vyøe¹il, nemusí¹ si hlídat velikosti screenu a jeho rozli¹ení.
Prostì 0 a 1 :)
|

Nezdá se to, ale tímhle zpùsobem umístí¹ cokoli kamkoli. Nezapomeò je¹tì je tu osa Z. |
|
Tento souøadnicový systém je "v¹udypøítomný". Kdy¾ chce¹ nìco posunout nebo jako parametr k efektu, v¾dy
podle tìchto souøadnic. A mù¾e¹ zadávat i pozice mimo sceen (tøeba logo vyjede zleva apod.) Souøadnice se
pou¾ívají èasto a za chvíli si zvykne¹ (bude¹ muset haha). Kdy¾tak ètvereèkovaný papír a tu¾ka to
jistí.
|
Èas...
Základní èasovou jednotkou je pùlsekunda, 50Hz. Aby se to nepletlo, zapisuje se èíslem 25.
|
| 0.5 |
sekundy |
25 |
| 1 |
sekunda |
50 |
| 1.5 |
sekundy |
75 |
| 2 |
sekundy |
100 |
|
|
Dùle¾itá vìc: èas se "pøipoèítává" nìco jako timeline, nezadává¹ jak dlouho má
parametr trvat, ale odkdy-dokdy. Èas stále bì¾í dopøedu. Napøiklad parametr Bounce pøesunuje sprajt z jedné pozice na
druhou pozici, tam setrvá a vrátí se zpìt na pùvodní pozici. Pøesun zaène v èase 0, na druhou pozici se dostane za
èas 150 tam sertvá do 300 (tak¾e tady neèeká 300 jednotek, ale 150) pak se stejnou rychlostí vrátí na pùvodní
pozici. Z toho vyplývá ¾e celá akce trvala 450 jednotek, tedy 9 sekund.
|

Èas - Timeline. |
|
Èas co je zapsán v tagu <PLAY> je "nadøazen" èasu v Kpartu. Musí¹ si tedy v¹echno spoèítat, ale to není
problém.
|
Paleta...
Paleta není pevnì daná, tu urèís ty. V¹echny bitmapy v jednom Kpartu musí být nakresleny-ulo¾eny ve stejné
paletì a tu potom musí¹ "uzamknout" (Setpalette). Proto¾e je aktuální paleta zamknutá, bitmapy s jinou
paletou by se nezobrazovaly správnì. Ka¾dý dal¹í Kpart s grafikou, má svou paletu podle bitmap kterých v nìm
pou¾ije¹. Nezapomeò jen 256 barev.
|

Paleta tvých bitmap vypadá napøíklad takto. |
|
Barvy v paletì se zapisují od èísla 0 do 255, s tím ¾e barva 0 je prùhledná (mù¾e být i jiná
ne¾ obvyklá èerná). Tøeba pozadí nemusí být bitmapa, ale jenom jedna barva a to èíslo barvy si musí¹
"najít" v tvé aktuální paletì. Kdy¾ pou¾ívá¹ víc palet v jednom demu, rozlo¾ení barev
mù¾e být jiné. Èísla toti¾ popisují pozici barvy v paletì, ne jejich skuteènou barvu.
|
Jak celý skript-demo spusit a opustit ?
Nejlep¹í je spou¹tìt skript z adresáøe kde má¹ soubor Karate, adresáø Fx a tvoje bitmapy/moduly (v
adresáøi nebo ne). Jde to i jinak, ale takhle se vyhne¹ poèáteèním problémùm. Demo opustí¹ kdykoli stiskem
levého tlacítka my¹i, nebo klávesou Esc.
Napí¹e¹ v shellu:
- Karate s=mojedemo.txt , otevøe se screenmode requester, vybere¹ mód a skript se rozjede.
- Karate s=mojedemo.txt w=320 h=240 , skript se rozjede rovnou v 320x240.
- Karate s=mojedemo.txt b=loader.txt , b jako bootscript. Mezitím co se nahrává celé demo, probíhá skript loader.txt
co si napí¹e¹.
- Karate c , vypí¹e se "diagnostika" v¹ech efektù a parametrù. Taky jejich krátká nápovìda (velmi
u¾iteèné).
- Karate nmt , kdy¾ pøidá¹ tento parametr, demo se dá opustit jen klávesou Esc (taky u¾iteèné).
Nebo to mù¾e¹ spustit ikonou pøes Iconx.
Èerný pás èeká......
|
| ghh don'tpanic |
|