 |
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 |