Efektní ohňostroj pomocí GM Particles

Ostatní jazyky GameMaker Efekty Efektní ohňostroj pomocí GM Particles

Dnes si ukážeme jak lze vytvořit pomocí částic efektní ohňostroj.

  1. Nejprve vytvoříme částicový systém Create part system (hloubku není třeba nastavovat)
  2. 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
  3. 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"
  4. Particle life nastavíme obě hodnoty na zhruba 50 (vyletí vzhůru a po 50ti krocích zmizne)
  5. 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
  6. 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 :D

  1. 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
  2. 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)
  3. U životu dáme lehkou odchylku 25-30
  4. Rychlost nastavíme 0-5, směr je neomezený (0-360) a tření žádné
  5. 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.

  1. 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
  2. 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
  3. 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ženo 333x (10.01 kB)

 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 


Miniatura
Předchozí článek
Práce s Particles v praxi
Miniatura
Všechny články v sekci
GameMaker - Efekty

 

 

Komentáře

Avatar
crusader
Redaktor
Avatar
crusader:

Píše se efektní (i když v rámci particle efektů může být i efektivní... :-))

 
Odpovědět 5.1.2012 21:32
Avatar
Odpovídá na crusader
David Jančík [sczdavos]:

Myslel jsem efektní. Děkuji za upozornění, opravil jsem :)

Odpovědět 5.1.2012 21:47
Čím více času dostaneš, tím méně ho máš.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.