Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

 

Všechny články v sekci
GameMaker - Efekty
Článek pro vás napsal David Jančík
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity