Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Efektné ohňostroj pomocou GM Particles

Dnes si ukážeme ako sa dá vytvoriť pomocou častíc efektné ohňostroj.

  1. Najprv vytvoríme časticový systém Game maker - Efekty Create part system (hĺbku netreba nastavovať)
  2. Potom vytvoríme raketu (čo vzlítne do oblakov) pomocou akcie Game maker - Efekty create Particle - tvar zvolíme sphere (guľa)
    • môžete prípadne použiť nejaký vlastné sprite
    • minimálna a maximálna veľkosť nastavíme na 0.25 (čiže častice vždy chceme vytvárať o rovnakej veľkosti)
    • meniť veľkosť nechceme takže size increment ponecháme 0
  3. V Game maker - Efekty Particle color nastavíme nejakú tmavšie farbičku (tmavo hnedú napríklad) u color1 aj color2 (chem stále rovnakú) počiatočné aj koncové alpha priehľadnosť bude tiež rovnaká a to "1"
  4. Game maker - Efekty Particle life nastavíme obe hodnoty na približne 50 (vyletí hore a po 50tich krokoch zmizne)
  5. Teraz časticu nastavíme rýchlosť Game maker - Efekty
    • rýchlosť nastavíme na 8-12
    • smer urobíme koláčový -> 80-100
    • a trenie nenastavuje
  6. Nastavíme ľahkú gravitáciu Game maker - Efekty Particle gravity - zhruba 0.15 smerom nadol (270)
Máme hotovú raketu čo vystrelí a po chvíľke zmizne. Teraz urobíme efekt po výbuchu, také to farebné prskanie do všetkých strán : D
  1. Vytvoríme novú časticu (nezabudnite zmeniť typ na 1 a dávajte si na to pozor pri ďalšom nastavovaní vlastností pre túto časticu) - tvar zvolíme flare
    • minimálna veľkosť 0.15 a maximálna 0.2
    • size increment zostane rovný 0
  2. Nastavíme meniace sa farbu od svetlo červenej po svetle zelenú pričom počiatočná alpha bude 1 a koncová 0 (bude žiariť farbami a postupne vyhasne)
  3. U životu dáme ľahkou odchýlku 25-30
  4. Rýchlosť nastavíme 0-5, smer je neobmedzený (0-360) a trenie žiadne
  5. Gravitáciu nastavíme o niečo vyššiu hodnotu ako u rakety 0.2 a smer opäť zemskej príťažlivosti (270)
Už máme aj onen efekt po výbuchu rakety.
  1. Teraz je potrebné pomocou akcia Game maker - Efekty Particle secondary nastaviť, že sa po výbuchu (zmiznutí) rakety vytvorí efekt (druhá častice) - prvá kolónka type id -> určuje pre ktorú časticu chceme onú novú časticu vytvoriť
    • step type -> určuje typ častice ktorý sa bude vytvárať po dobu čo častice existuje tu nemusíme voliť nič
    • tu nemusíme voliť nič
    • step count -> počet častíc čo sa bude vytvárať po dobu čo častice existuje hodnota zostane rovná 0
    • hodnota zostane rovná 0
    • death type -> častice ktorá sa vytvorí po zničení zadanej častice v type id či vyberieme druhú časticu (efekt po výbuchu)
    • či vyberieme druhú časticu (efekt po výbuchu)
    • death count -> počet častíc zadaného typu ktorý sa vytvorí po zničení častice zadané v type id tu zadáme zhruba 100
    • tu zadáme zhruba 100
  2. A teraz už vytvoríme Emitter Game maker - Efekty
    • tvar zvolíme rectangle
    • budeme chcieť vytvířet po celej šírke obrazovky a kúsok pod ňou aby nebolo vidieť náhlej vytvorenie častice xmin = 0; Xmax = room_width

      ymin a ymax = room_height + 30

    • xmin = 0; Xmax = room_width
    • ymin a ymax = room_height + 30
  3. A použijeme akciu Game maker - Efekty Stream from Emitter kde vyberieme raketu a počet zadáme -6 (každých 6 krokov sa vytvorí častice)
A takto nejako by mohol vyzerať 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);

 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 768x (10.01 kB)

 

Všetky články v sekcii
Game maker - Efekty
Článok pre vás napísal David Jančík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity