Fire effekt doc --------------- by Lazy Jones V par nasledujich radkach se vam pokusim vysvetlit jednoduchy effekt *Fire* neboli ohen, a to nejenom z toho duvodu, aby mne zase negdo neobvinoval, ze sem ho negde opsal nebo co. Princip je vcelku jednoduchy. Za prvy. Paleta barev pro ohen MUSI byt plynuly prechod nejlepe ze zluty (nejvyssi barva), pres cervenou, az do cerny (barva nejnizsi). Chunky obrazovku je nejlip pouzit v rozliseni 2x2, z duvodu vyssi rychlosti. Za druhy. Jak na to. Pro prehlednost to pisu v PC (PseudoCodu) hpixels=160 ; sirka chunky screenu vpixels=100 ; vyska chunky screenu for i=hpixels*(vpixels-2) to hpixels*vpixels begin c2pscreen(i)=rnd(255); posledni dva radky chunky screenu se musi naplnit nahodnyma hodnotama. Pro dokonalejsi effekt, je lepsi, aby hodnoty byly v urcitem rozmezi, treba (150..255) (to sem si jen tak tipnul, zalezi na palete) end; aktpixel=c2pscreen+hpixels; promena aktpixel obsahuje adresu bodu se kterym budeme pracovat, s tim ze prvni radku preskocime for i=1 to hpixels*vpixels ; pocet opakovani, tzn. pocet bodu begin fvalue=-1(aktpixel)+0(aktpixel)+1(aktpixel)+hpixels(aktpixel)/4; if fvalue>0 then dec(fvalue); ;predchozi zapis vypada slozite, ale je to jednoduchost sama. Vezmu si hodnotu levyho bodu (vsechno od aktualni pozice), aktualniho, pravyho a spodniho, zprumeruju ho a pokad je vetsi nez 0 odectu od nej 1, tim vlastne snizim jeho jas (barvu) o 1. Pokad ho snizite o 2, zvysi se rychlost plapolani ale snizi se tim jeho vyska. -hpixels(aktpixel)=fvalue; zjistenou hodnotu zapis o radek vys end; takhle projdu celou obrazovku a effekt je hotov. ted uz jen staci tuhle smycku opakovat dokola a opravdu to hori. Tips: pokad spocteny bod nezapisete primo nad ten z kteryho se vychazelo, ale treba o jeden bod doprava, vznikne tzv. wind effekt. tzn. ohen je jakoby odfoukavan vetrem (fcelku effektni effekt) PS: zdrojak je tak jednoduchej ze nema cenu ho sem davat, myslim ze na to kazdej pridete (jako ja). Pozn. Blur effekt pracuje podobne s tim, ze se spocteny bod nekopiruje o radek vys ale prepise hodnotu bodu ze kteryho se vychazelo. Vsechno jen zalezi na tom jaky hodnoty pouzijete atd. proste s timhle principem si lze vcelku schopne vyhrat.