|
Rectangle
|
Rectangle - pravoúhelník. Toto je přesně ta věc kvůli které se budeš chtít naučit Karate script.
Jistě sis všiml(a) v ukázkách je často "<Pa></Pa> přes celej screen". Protože každý grafický
efekt (mimo SetPalette a BindPalette) potřebuje vědět v jakém "rectangle" má běžet, prázdný
parametr <Pa></Pa> je základní "root rectangle" a nemusí se předem definovat. Vždy je jeho velikost přes celou
obrazovku.
Ty si ale můžeš vytvořit svoje pravoúhelníky, s vlastní velikostí a "clip" prostorem. V takto tebou nadefinovaných
"rectangle" zobrazíš grafické efekty a zároveň s nimi můžeš provádět další operace
(nájezd, odjezd, zoom, blur apod.) Pravoúhelník je buďto jeden jediný a nebo je to "otec" co má "syny". Když hýbneš otcem,
hýbnou se i synové.
|
Jeden "otec" a čtyři synové. |
Celou "rodinkou" můžeš manipulovat. |
|
Další věcí je clip - výřez. Každý pravoúhelník má svůj "clip prostor", svoji pozici a tím
zároveň i velikost. Pokud je clip menší než velikost pravoúhelníku, bude vidět jen ten výřez. Když
změníš celkovou pozici - velikost, "clip prostor" se bude měnit také.
|
Clip a celková velikost je stejná. |
Velikost zůstává, clip - výřez je menší. |
|
Pozice (pohyb) "clipu" a velikosti ovládáš efektem SetRect. Do pravoúhelníku s "clipem" můžeš navrstvit
další efekty. V každém dalším pravoúhelníku může být jiný efekt s jinou velikostí apod.
|
Efekt bude působit v pravoúhelníku co mu určíš. |
Efekty nepřesahují výřez. |
|
<Krect> název|clip x1|clip y1|clip x2|clip y2| "clip otec" nebo nic|pozice x1|pozice y1|pozice x2|pozice y2| "pozice otec" nebo nic </Krect>
|
Pravoúhelník "otec" se zapisuje: <Krect> otec1 |x1 |y1 |x2 |y2 | | x1 |y1 |x2 |y2 | </Krect> Když je mezi pozicemi a na konci prázdno,
je pravoúhelník považován za "otce". Nezapomeň na znaky "| |" uprostřed a jeden "|" na konci.
Pravoúhelník "syn" se zapisuje: <Krect> syn1 |x1 |y1 |x2 |y2 | otec1 | x1 |y1 |x2 |y2 | otec1 </Krect> Syn má svůj
vlastní clip i pozici, ovšem když změníš pozici otce, syn jde s ním. Další pravoúhelníky se mohou dále
větvit a mít za otce například syn1 apod.
|
|
<AuxRect> název | název bitmapy </AuxRect>
|
Vytvoří další "root rectangle" na bitmapě. Trochu krkolomná věta, ale tady se krabob opravdu překonal.
Například 3d kostka má bitmapovou texturu(y) a na této textuře vytvoříš další "root rectangle". Je to jako
další základní pozadí na kterém se odehrávají další efekty i celé pasáže. 3d kostka tak
může mít místo statické textury, texturu pohyblivou. Představ si třeba scrolltext na rotující 3d kostce, nebo Tunnel
místo textury a podobně. S tímto postupem je úzce svázán objekt ImgEmpty.
Na začátku sice trochu složitější, ale funguje to asi takhle: připravíš si "prázdnou" bitmapu ImgEmpty a AuxRect na
této bitmapě. Dále 3d kostku, Tunnel a vše co k nim náleží. S tím rozdílem že Tunnel se bude zobrazovat - renderovat
v AuxRect tudíž na naší bitmapu. Z téhle "prázdné" bitmapy uděláš 3d texturu a tu použiješ na kostku.
Tímto způsobem se tak může další "demo" odehrávat na jakékoli bitmapě. Těchto AuxRect(ů) si vytvoříš kolik chceš a dají se přiřadit i pod
Krect a jeho "syny". Možnosti jsou téměř neomezené.
Nezapomeň že tento "trik" ve většině případů potřebuje velikost bitmap 256x256 pixelů.
|
|
- Jak použít jeden "rectangle" a jeho clip.
- Jak použít jeden hlavní "rectangle" a jeho čtyři syny.
- Jak udělat 3d Tunnel jako texturu na 3d kostce pomocí AuxRect.
- Jak udělat 3d hvězdu jako texturu na Ground pomocí AuxRect.
|
ghh don'tpanic |