Skocz do zawartości

Światło


Rekomendowane odpowiedzi

Cześć, zrobiłem w swojej grze następujący motyw, przejeżdżające w nocy samochody, to działa. Ale chciałem dać, żeby świeciły światłami, teoretycznie też działa, tylko jest jeden problem. Otóż kiedy samochód przejeżdża, światło nie zanika, tylko tworzy za nim taką smugę, która rozświetla room. Używam tego przykładu na światło. Event tworzenia światła dałem w step. Co zrobiłem nie tak ?

 

Chodzi o to, aby światło jechało z pojazdem, ale żeby było krótkie i nie rozświetlało obszaru na stałe, tylko na ten czas to przejeżdża samochód

 

Taki kod dałem przy samochodzie:

GML
//Przyklad latarki na takim czyms.

ins = instance_create(x, y, oLight); //Tworzymy obiekt swiatla, jego id pobieramy do zmiennej ins, aby moc go kontrolowac

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

ins.color = c_white; //Kolor na lekkoniebieski

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

 

I światło zostaje w tyle, w miejscu.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie znam przykładu, ale jeśli ten kod masz w stepie, to co step tworzysz nowy obiekt, jeśli ich potem nie niszczysz to no oczywiście zostaja z tyłu.

 

Masz dwa rozwiązania( w zależności o co chodzi w tym przykładzie ):

Albo kasujesz te obiekty po krotkiej chwili, albo robisz tylko jeden obiekt i przyczepiasz go do auta tak by ciagle poruszał sie razem z autem

Odnośnik do komentarza
Udostępnij na innych stronach

samochod niecognie sviatlo za sobo, ale nierobi CLEAR dla sviatla v surface.

GML
// object oCtrlLight event STEP:

surface_set_target(global.sfShadow);

{

draw_clear_alpha($dddddd, 1);

draw_set_blend_mode(bm_subtract);

{

with(oLight)

{

draw_clear_alpha($dddddd, 1); // TUTAJ NOWY CLEAR

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();

Odnośnik do komentarza
Udostępnij na innych stronach

Cofnij zmiany i zmodyfikuj obiekt obj_sam_postronny tak:

GML
Information about object: obj_sam_postronny

Create Event:

 

set the horizontal speed to -25

execute code:

 

sprite_index=choose(spr_f1,spr_m1,sprite1)

 

//Przyklad latarki na takim czyms.

ins = instance_create(x, y, oLight); //Tworzymy obiekt swiatla, jego id pobieramy do zmiennej ins, aby moc go kontrolowac

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

ins.color = c_white; //Kolor na lekkoniebieski

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

 

Step Event:

 

execute code:

 

ins.x = x;

ins.y = y;

 

Other Event: Outside Room:

 

execute code:

 

with ( ins ) instance_destroy();

 

destroy the instance

 

Czyli, przenieś kod na tworzenie światła ze stepa do create. A do stepa daj kod na przesuwanie światła i do room_outside kod na usuwanie światła

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki ziomuś, teraz jest jak trza :D Ale mam jeszcze jedno pytanko.

Mam takie zdarzenie i dzieje się coś dziwnego, otóż obiekt, zamiast się przemienić, znika, dodam że kiedy zmieniam room i cofam się tam, to obiekt jest już zmieniony, tylko w chwili zdarzenia znika całkowicie. O co biega? Tu jest kod:

 

STEP NPC :

GML
if global.najebany = true

{

instance_change(o_najeb,true)

with o_najeb{

image_speed= (0.2)

}

}

 

KOLIZJA Z GRACZEM:

GML
if keyboard_check(vk_control){

add_text('Stach - Czego?')

add_text('Ptakowsky - Kupie ci to wino.')

add_text('Stach - Yyyy, dobra, masz tu piatke, kup dwa "Byki"')

add_text('Ptakowsky - Ok.')

script_execute(Inventory_Add,8,obj_5zl,"5 PLN",true)

global.najebany=true

global.piatka=true

instance_change(o_najeb,true)

 

add_text('Ptakowsky - Ale zgon, pewnie znow wyladuje na wytrzezwialce.')

}

 

Już nie ważne, naprawiłem to, można zamknąć.

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ę...