IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

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 GameMaker - Efekty Create part system (hloubku není třeba nastavovat)
  2. Poté vytvoříme raketu (co vzlítne do oblak) pomocí akce GameMaker - Efekty 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 GameMaker - Efekty 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. GameMaker - Efekty Particle life nastavíme obě hodnoty na zhruba 50 (vyletí vzhůru a po 50ti krocích zmizne)
  5. Nyní částici nastavíme rychlost GameMaker - Efekty
    • 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 GameMaker - Efekty 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 GameMaker - Efekty 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 GameMaker - Efekty
    • 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 GameMaker - Efekty 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ínkami

Staženo 739x (10.01 kB)

 

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