Efektní ohňostroj pomocí GM Particles
Dnes si ukážeme jak lze vytvořit pomocí částic efektní ohňostroj.
- Nejprve vytvoříme částicový systém
Create part system (hloubku není třeba nastavovat)
- Poté vytvoříme raketu (co vzlítne do oblak) pomocí akce
Create Particle
- tvar zvolíme sphere (koule)
- můžete případně použít nějaký vlastní sprite
- minimální a maximální velikost nastavíme na 0.25 (neboli částice vždy chceme vytvářet o stejné velikosti)
- měnit velikost nechceme takže size increment ponecháme 0
- V
Particle color nastavíme nějakou tmavší barvičku (tmavě hnědou například) u color1 i color2 (cheme stále stejnou) počáteční i koncová alpha průhlednost bude rovněž stejná a to "1"
Particle life nastavíme obě hodnoty na zhruba 50 (vyletí vzhůru a po 50ti krocích zmizne)
- Nyní částici nastavíme rychlost
- rychlost nastavíme na 8-12
- směr uděláme výsečový -> 80-100
- a tření nenastavujeme
- Nastavíme lehkou gravitaci
Particle gravity
- zhruba 0.15 směrem dolů (270)
Máme hotovou raketu co vystřelí a po chvilce zmizne. Nyní uděláme efekt
po výbuchu, takové to barevné prskání do všech stran
- Vytvoříme novou částici (nezapomeňte změnit typ na 1 a
dávejte si na to pozor při dalším nastavování vlastností pro tuto
částici)
- tvar zvolíme flare
- minimální velikost 0.15 a maximální 0.2
- size increment zůstane roven 0
- Nastavíme měnící se barvu od světle červené po světle zelenou přičemž počáteční alpha bude 1 a koncová 0 (bude zářit barvami a postupně vyhasne)
- U životu dáme lehkou odchylku 25-30
- Rychlost nastavíme 0-5, směr je neomezený (0-360) a tření žádné
- Gravitaci nastavíme o něco vyšší hodnotu než u rakety 0.2 a směr opět zemské přitažlivosti (270)
Již máme i onen efekt po výbuchu rakety.
- Teď je třeba pomocí akce
Particle secondary nastavit, že se po výbuchu (zmizení) rakety vytvoří efekt (druhá částice)
- první kolonka type id -> určuje pro kterou částici chceme onu novou částici vytvořit
- step type -> určuje typ částice který se bude vytvářet po dobu co
částice existuje
- zde nemusíme volit nic
- step count -> počet částic co se bude vytvářet po dobu co částice
existuje
- hodnota zůstane rovna 0
- death type -> částice která se vytvoří po zničení zadané
částice v type id
- zda vybereme druhou částici (efekt po výbuchu)
- death count -> počet částic zadaného typu který se vytvoří po
zničení částice zadané v type id
- zde zadáme zhruba 100
- A teď již vytvoříme emitter
- tvar zvolíme rectangle
- budeme chtít vytvířet po celé šíři obrazovky a kousek pod ní aby
nebylo vidět náhlé vytvoření částice
- xmin = 0; xmax = room_width
- ymin a ymax = room_height + 30
- A použijeme akci
Stream from emitter kde vybereme raketu a počet zadáme -6 (každých 6 kroků se vytvoří částice)
A takhle nějak by mohl vypadat GML kód:
//particle system psyst = part_system_create(); //raketa ppart1 = part_type_create(); part_type_shape(ppart1, pt_shape_sphere); part_type_size(ppart1, 0.25, 0.25, 0, 0); part_type_color1(ppart1, make_color_rgb(100,30,10)); part_type_alpha1(ppart1, 1); part_type_life(ppart1, 50, 50); part_type_speed(ppart1, 8, 12, 0, 0); part_type_direction(ppart1, 80, 100, 0, 0); part_type_gravity(ppart1, 0.15, 270); //efekt po výbuchu ppart2 = part_type_create(); part_type_shape(ppart2, pt_shape_flare); part_type_size(ppart2, 0.15, 0.2, 0, 0); part_type_color2(ppart2, c_red, c_green); part_type_alpha2(ppart2, 1, 0); part_type_life(ppart2, 25, 30); part_type_speed(ppart2, 0, 5, 0, 0); part_type_direction(ppart2, 0, 360, 0, 0); part_type_gravity(ppart2, 0.2, 270); //po zničení rakety vytvořit efekt part_type_death(ppart1, 100, ppart2); //vytvoření emitteru emitter = part_emitter_create(psyst); part_emitter_region(psyst, emitter, 0, room_width, room_height+30, room_height+30, ps_shape_rectangle, ps_distr_linear); part_emitter_stream(psyst, emitter, ppart1, -6);
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 817x (10.01 kB)