IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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é 877x (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