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