Plápolající oheň a plovoucí obláčky
Ukážeme si jak jednoduše vytvořit plápolající oheň a efekt plovoucích obláčků.
Začneme vytvořením efektu plamene.
- Vytvoříme si objekt obj_fire
- přidáme create event a hned na to vytvoříme částicový systém
- začneme nastavovat částici efektu plamene (bude to efekt zmenšující se
bakulky exploze s žluto-červenou barvou stoupající k oblakům)
- tvar zvolíme explosion
- velikost asi 0.1 - 0.5 se size increment -0.02
- barvu zvolíme mixed žlutá, červená s počáteční alfa průhledností 1 a koncovou 0 (postupně vymizí)
- pohybovat se bude rychlostí 0-8 směrem 80-100 se třením 0.05 (stoupá k oblakům v úzkém vějíři)
- a jako poslední nastavíme život od 10-15
- nyní vylepšíme efekt - plamen bude jemně lemován stoupajícím kouřem
- nezapomeňte změnit typ při nastavování vlastností (ať nenastavujete znovu plamen)
- tvar bude smoke
- velikost 0.3-0.6 s 0 inkrementací
- barva lehce šedá až černá, měnící se (changing) s alfa průhledností 0.2 start, 0 end
- pohyb 0-5, vějířového směru 80-100 se třením 0.1
- a životnost 40-50
- pro tento objekt je to vše
- Nyní si vytvoříme ohniště - fireplace (načrtněte si nějaká polínka
nebo kamenné jednoduché ohniště, ve kterém bude hořet oheň) a umístětě
křížek (origin) ve spritu na místo odkud oheň bude vycházet
- do step eventu (budou se vytvářet jednotlivé plamínky ohně) přidáme emitter
- tvar rectangle
- x-ová souřadnice relativně -> x-16 až +16 a y-onová y
- teď vytvoříme pomocí burst from emitter oheň (10 částic) s kouřem (postačí 4 částice)
- Přidejte si nějaké pěkné pozadí a v editoru místnosti přidejte ohniště na některé hezké místo, nezapomeňte umístit i objekt plamene ! Můžete spustit a vyzkoušet
- Teď ještě lehce vylepšíme vzhled přidáním plovucích mráčků
- Vytvoříme objekt obj_clouds a v jeho create eventu vytvoříme částici mraku - nezzapomeňte zvolit zase nový typ částice !
- kde tvar bude cloud
- velikost 5-3 se size increment 0.025
- pohybovat se bude rychlostí 2-3 ostatní nevyplňujeme
- životnost bude mít 1000-1500 (aby stihl proplout celou místností)
- barva bude bílá až jemně našedlá, mixed, s počáteční i koncovou alfa průhledností rovnou 1
- teď vytvoříme emiter - nezapomeňte změnit jeho id
- typ bude normální linka
- souřadnice x -150 (aby se tvořili mimo místnost a plynule vpluly) a y 0-150 (zvolte dle rozpínavosti)
- pomocí stream from emitter necháme vytvářet -50 (vytvoření za 50 kroků)
Objekt přidáme do místnosti a hru spustíme.
Přepis v kódu GML může vypadat nějak takto:
//objekt plamene //particle system global.psyst = part_system_create(); //efekt plápolajícího ohně global.ppart0 = part_type_create(); part_type_shape(global.ppart0, pt_shape_explosion); part_type_size(global.ppart0, 0.1, 0.5, -0.02, 0); part_type_color2(global.ppart0, c_yellow, c_red); part_type_alpha2(global.ppart0, 1, 0); part_type_speed(global.ppart0, 0, 8, -0.05, 0); part_type_direction(global.ppart0, 80, 100, 0, 0); part_type_life(global.ppart0, 10, 15); //efekt kouře global.ppart1 = part_type_create(); part_type_shape(global.ppart1, pt_shape_smoke); part_type_size(global.ppart1, 0.3, 0.6, 0, 0); part_type_color2(global.ppart1, c_gray, c_black); part_type_alpha2(global.ppart1, 0.2, 0); part_type_speed(global.ppart1, 0, 5, -0.1, 0); part_type_direction(global.ppart1, 80, 100, 0, 0); part_type_life(global.ppart1, 40, 50); //objekt ohniště - step event emitter0 = part_emitter_create(global.psyst); part_emitter_region(global.psyst, emitter0, x-16, x+16, y, y, ps_shape_rectangle, ps_distr_linear); part_emitter_burst(global.psyst, emitter0, global.ppart0, 10); part_emitter_burst(global.psyst, emitter0, global.ppart1, 4); //objekt mraku psyst = part_system_create(); //nastavení částice mraku ppart2 = part_type_create(); part_type_shape(ppart2, pt_shape_cloud); part_type_size(ppart2, 5, 3, 0.025, 0); part_type_color2(ppart2, c_white, c_gray); part_type_alpha1(ppart2, 1); part_type_life(ppart2, 1000, 1500); part_type_speed(ppart2, 2, 3, 0, 0); emitter1 = part_emitter_create(psyst); part_emitter_region(psyst, emitter1, -150, -150, 0, 100, ps_shape_line, ps_distr_linear); part_emitter_stream(psyst, emitter1, ppart2, -50);
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 448x (16.33 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker