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

Horiaci oheň a plávajúce obláčiky

Ukážeme si ako jednoducho vytvoriť horiaci oheň a efekt plávajúcich obláčikov.

Začneme vytvorením efektu plameňa.

  • Vytvoríme si objekt obj_fire pridáme create event a hneď na to vytvoríme časticový systém

    začneme nastavovať časticu efektu plameňa (bude to efekt zmenšujúca sa bakulky explózia s žlto-červenou farbou stúpajúce k oblakom) tvar zvolíme explosion

    veľkosť asi 0.1 - 0.5 sa size increment -0.02

    farbu zvolíme mixed žltá, červená s počiatočnou alfa priehľadnosťou 1 a koncovú 0 (postupne vymiznú)

    pohybovať sa bude rýchlosťou 0-8 smerom 80-100 sa trením 0.05 (stúpa k oblakom v úzkom vejármi)

    a ako posledný nastavíme život od 10-15

    teraz vylepšíme efekt - plameň bude jemne lemovaný stúpajúcim dymom nezabudnite zmeniť typ pri nastavovaní vlastností (či nenastavujete znova plameň)

    tvar bude smoke

    veľkosť 0.3-0.6 s 0 inkrementácia

    farba ľahko šedá až čierna, meniace sa (changing) s alfa priehľadnosťou 0.2 štart, 0 end

    pohyb 0-5, vejárového smere 80-100 sa trením 0.1

    a životnosť 40-50

    pre tento objekt je to všetko

  • pridáme create event a hneď na to vytvoríme časticový systém
  • začneme nastavovať časticu efektu plameňa (bude to efekt zmenšujúca sa bakulky explózia s žlto-červenou farbou stúpajúce k oblakom) tvar zvolíme explosion

    veľkosť asi 0.1 - 0.5 sa size increment -0.02

    farbu zvolíme mixed žltá, červená s počiatočnou alfa priehľadnosťou 1 a koncovú 0 (postupne vymiznú)

    pohybovať sa bude rýchlosťou 0-8 smerom 80-100 sa trením 0.05 (stúpa k oblakom v úzkom vejármi)

    a ako posledný nastavíme život od 10-15

  • tvar zvolíme explosion
  • veľkosť asi 0.1 - 0.5 sa size increment -0.02
  • farbu zvolíme mixed žltá, červená s počiatočnou alfa priehľadnosťou 1 a koncovú 0 (postupne vymiznú)
  • pohybovať sa bude rýchlosťou 0-8 smerom 80-100 sa trením 0.05 (stúpa k oblakom v úzkom vejármi)
  • a ako posledný nastavíme život od 10-15
  • teraz vylepšíme efekt - plameň bude jemne lemovaný stúpajúcim dymom nezabudnite zmeniť typ pri nastavovaní vlastností (či nenastavujete znova plameň)

    tvar bude smoke

    veľkosť 0.3-0.6 s 0 inkrementácia

    farba ľahko šedá až čierna, meniace sa (changing) s alfa priehľadnosťou 0.2 štart, 0 end

    pohyb 0-5, vejárového smere 80-100 sa trením 0.1

    a životnosť 40-50

  • nezabudnite zmeniť typ pri nastavovaní vlastností (či nenastavujete znova plameň)
  • tvar bude smoke
  • veľkosť 0.3-0.6 s 0 inkrementácia
  • farba ľahko šedá až čierna, meniace sa (changing) s alfa priehľadnosťou 0.2 štart, 0 end
  • pohyb 0-5, vejárového smere 80-100 sa trením 0.1
  • a životnosť 40-50
  • pre tento objekt je to všetko
  • Teraz si vytvoríme ohnisko - fireplace (načrtnite si nejaká polienka alebo kamenné jednoduché ohnisko, v ktorom bude horieť oheň) a umiestnite krížik (origin) vo Spritu na miesto odkiaľ oheň bude vychádzať do step eventu (budú sa vytvárať jednotlivé plamienky ohňa) pridáme Emitter

    tvar rectangle

    x-ová súradnice relatívne -> x-16 až +16 a y-ònový y

    teraz vytvoríme pomocou burst from Emitter oheň (10 častíc) s dymom (postačí 4 častice)

  • do step eventu (budú sa vytvárať jednotlivé plamienky ohňa) pridáme Emitter
  • tvar rectangle
  • x-ová súradnice relatívne -> x-16 až +16 a y-ònový y
  • teraz vytvoríme pomocou burst from Emitter oheň (10 častíc) s dymom (postačí 4 častice)
  • Pridajte si nejaké pekné pozadie a v editore miestnosti pridajte ohnisko na niektoré pekné miesto, nezabudnite umiestniť aj objekt plameňa! Môžete spustiť a vyskúšať
  • Teraz ešte zľahka vylepšíme vzhľad pridaním plovucích mráčikov Vytvoríme objekt obj_clouds a v jeho create evente vytvoríme časticu mraku - nezzapomeňte zvoliť zase nový typ častice!

    kde tvar bude cloud

    veľkosť 5-3 sa size increment 0.025

    pohybovať sa bude rýchlosťou 2-3 ostatné nevypĺňajú

    životnosť bude mať 1000-1500 (aby stihol preplávať celú miestností)

    farba bude biela až jemne sivastá, mixed, s počiatočnou aj koncovou alfa priehľadnosťou rovnú 1

    teraz vytvoríme Emiter - nezabudnite zmeniť jeho id

    typ bude normálne linka

    súradnice x -150 (aby sa tvorili mimo miestnosti a plynule vplávali) ay 0-150 (zvoľte podľa rozpínavosti)

    pomocou stream from Emitter necháme vytvárať -50 (vytvorenie za 50 krokov)

  • Vytvoríme objekt obj_clouds a v jeho create evente vytvoríme časticu mraku - nezzapomeňte zvoliť zase nový typ častice!
  • kde tvar bude cloud
  • veľkosť 5-3 sa size increment 0.025
  • pohybovať sa bude rýchlosťou 2-3 ostatné nevypĺňajú
  • životnosť bude mať 1000-1500 (aby stihol preplávať celú miestností)
  • farba bude biela až jemne sivastá, mixed, s počiatočnou aj koncovou alfa priehľadnosťou rovnú 1
  • teraz vytvoríme Emiter - nezabudnite zmeniť jeho id
  • typ bude normálne linka
  • súradnice x -150 (aby sa tvorili mimo miestnosti a plynule vplávali) ay 0-150 (zvoľte podľa rozpínavosti)
  • pomocou stream from Emitter necháme vytvárať -50 (vytvorenie za 50 krokov)

Objekt pridáme do miestnosti a hru spustíme.

Prepis v kóde GML môže vyzerať nejako takto:

//objekt plamene
//particle system
global.psyst = part_system_create();

//efekt plápolajícího ohně
global.ppart0 = part_type_create();
part_type_shape(global.ppart0, pt_shape_explosion);
part_type_size(global.ppart0, 0.1, 0.5, -0.02, 0);
part_type_color2(global.ppart0, c_yellow, c_red);
part_type_alpha2(global.ppart0, 1, 0);
part_type_speed(global.ppart0, 0, 8, -0.05, 0);
part_type_direction(global.ppart0, 80, 100, 0, 0);
part_type_life(global.ppart0, 10, 15);

//efekt kouře
global.ppart1 = part_type_create();
part_type_shape(global.ppart1, pt_shape_smoke);
part_type_size(global.ppart1, 0.3, 0.6, 0, 0);
part_type_color2(global.ppart1, c_gray, c_black);
part_type_alpha2(global.ppart1, 0.2, 0);
part_type_speed(global.ppart1, 0, 5, -0.1, 0);
part_type_direction(global.ppart1, 80, 100, 0, 0);
part_type_life(global.ppart1, 40, 50);

//objekt ohniště - step event
emitter0 = part_emitter_create(global.psyst);
part_emitter_region(global.psyst, emitter0, x-16, x+16, y, y, ps_shape_rectangle, ps_distr_linear);
part_emitter_burst(global.psyst, emitter0, global.ppart0, 10);
part_emitter_burst(global.psyst, emitter0, global.ppart1, 4);

//objekt mraku
psyst = part_system_create();

//nastavení částice mraku
ppart2 = part_type_create();
part_type_shape(ppart2, pt_shape_cloud);
part_type_size(ppart2, 5, 3, 0.025, 0);
part_type_color2(ppart2, c_white, c_gray);
part_type_alpha1(ppart2, 1);
part_type_life(ppart2, 1000, 1500);
part_type_speed(ppart2, 2, 3, 0, 0);

emitter1 = part_emitter_create(psyst);
part_emitter_region(psyst, emitter1, -150, -150, 0, 100, ps_shape_line, ps_distr_linear);
part_emitter_stream(psyst, emitter1, ppart2, -50);

 

Stiahnuť

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

Stiahnuté 448x (16.33 kB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker

 

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