Skocz do zawartości

Migające światła - efekt stroboskopa.


Rekomendowane odpowiedzi

Cześć, światła w samochodach już działają, jednak mam mały problem z inną rzeczą. Chcę zrobić migające światełka oto kod żarówki:

 

CREATE

GML
wys = 1;

 

STEP

 

GML
.

if( wys ) = 1 { wys = 0; alarm[0] = 20;}

 

if( wys ) = 0{

ins = instance_create(x, y, oLight);

ins.spr = sLatareczka; //Ustawiamy jego sprite na sLaareczka

ins.color = choose (c_white,c_red,c_blue); //Kolor na lekkoniebieski

ins.cAlpha = 1; //Intensywnosc koloru na 1 (max)

}

 

ALARM 0

GML
wys = 1;

 

I teraz kuźwa jest mały problem. światła się faktycznie pojawiają, ale zamiast znikać po 1 sekundzie, to nakładają się na siebie i w końcu światło staje się czarne, próbowałem już na kilka sposobów, ale nie chce działać, co zrobić, żeby te światełka migały ?

Odnośnik do komentarza
Udostępnij na innych stronach

troche przekombinowales, w obiekcie swiatla zrób sobie alarmy w alarm 0 daj visible=1 + ustawienie alarmu1 w alarm 1 visible=0 i ustawienie alarmu0. Fajny nieregularny stroboskop wyjdzie jak zrobisz po prostu w stepie lub co dwa stepy visible=choose(0,1)

Odnośnik do komentarza
Udostępnij na innych stronach

Coś z obiektu światła musi zakłócać działanie tego:

 

CREATE ŚWIATŁA:

 

GML
//Inicjuje odpowiednie zmiene (jesli jeszcze nie istnieja

if(!variable_local_exists("spr")) //Sprite swiatla - domyslnie sLight

{ spr = sLight; }

if(!variable_local_exists("sclX")) //Shala poziomo - domyslnie 3

{ sclX = 3; }

if(!variable_local_exists("sclY")) //Pionowo - d. 3

{ sclY = 3; }

if(!variable_local_exists("dir")) //Kat spritu swiatla - d. 0

{ dir = 0; }

if(!variable_local_exists("alpha")) //Moc, sila swiatla (od 0 do 1) - domyslnie 1

{ alpha = 1; }

if(!variable_local_exists("color")) //Dodatkowo: kolor swiatla

{ color = c_white; }

if(!variable_local_exists("cAlpha")) //i intensywosc tego koloru

{ cAlpha = 0; }

alarm[0] = 1

 

ALARM ŚWIATŁA:

 

GML
visible = !visible;

alarm[0] = 1

Odnośnik do komentarza
Udostępnij na innych stronach

Coś z obiektu światła musi zakłócać działanie tego:

 

CREATE ŚWIATŁA:

 

GML
//Inicjuje odpowiednie zmiene (jesli jeszcze nie istnieja

/// ????????????? T_T

if(!variable_local_exists("spr")) //Sprite swiatla - domyslnie sLight

{ spr = sLight; }

if(!variable_local_exists("sclX")) //Shala poziomo - domyslnie 3

{ sclX = 3; }

if(!variable_local_exists("sclY")) //Pionowo - d. 3

{ sclY = 3; }

if(!variable_local_exists("dir")) //Kat spritu swiatla - d. 0

{ dir = 0; }

if(!variable_local_exists("alpha")) //Moc, sila swiatla (od 0 do 1) - domyslnie 1

{ alpha = 1; }

if(!variable_local_exists("color")) //Dodatkowo: kolor swiatla

{ color = c_white; }

if(!variable_local_exists("cAlpha")) //i intensywosc tego koloru

{ cAlpha = 0; }

alarm[0] = 1

 

ALARM ŚWIATŁA:

 

GML
visible = !visible;

alarm[0] = 1

 

Jak rysujesz światło w ev. draw? :P

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo rozumiem o co Ci chodzi ?

 

Jest jeszcze obiekt, który kontroluje światło:

CREATE

GML
global.sfShadow = surface_create(view_wview[0], view_hview[0]);

 

STEP

 

GML
surface_set_target(global.sfShadow);

{

draw_clear_alpha($dddddd, 1);

draw_set_blend_mode(bm_subtract);

{

with(oLight)

{

draw_sprite_ext(spr, 0, x-view_xview[0], y-view_yview[0], sclX, sclY, dir, make_color_rgb(alpha*255, alpha*255, alpha*255), 1);

}

}

draw_set_blend_mode(bm_normal);

 

draw_set_blend_mode(bm_add);

{

with(oLight)

{

if(cAlpha > 0)

{

draw_sprite_ext(spr, 0, x-view_xview[0], y-view_yview[0], sclX, sclY, dir, $ffffff-color, cAlpha);

}

}

}

draw_set_blend_mode(bm_normal);

}

surface_reset_target();

 

ROOM END

 

GML
surface_free(global.sfShadow);

 

DRAW

GML
draw_set_blend_mode(bm_subtract);

{

draw_surface(global.sfShadow, view_xview[0], view_yview[0]);

}

draw_set_blend_mode(bm_normal);

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...