Skocz do zawartości

Pomocy: Światło i cień latarki w surface lub inaczej


Drag0nPL

Rekomendowane odpowiedzi

Już raz mi pomogliście za co wam dziękuje ale znowu od kilku godzin stoję w kropce.

 

Za pomocą surface stworzylem oswietlenie, wyglada to tak:

 

Przed

 

Po

 

Podłoga to obiekt, ściany są czarne tak jak tło, na tym obrazku zmieniłem tło na szare

szare tło

 

 

Chciałbym uzyskać mniej więcej taki efekt latarki jak na tym zedytowanym zrzucie.

Efekt

 

Chodzi o to aby światło padające od gracza zatrzymywało się częściowo lub całkowicie na ścianie

ale zupełnie nie wiem jak sie za to zabrać.

Interesuje mnie każdy pomysł na edycję mojego kodu lub stworzenie nowego kodu.

 

meczylem sie z koliziami, surfaceami, liniami, move_... itd, od godziny nie mam zupełnie żadnego pomysłu.

 

 

Prześlę troche kodu:

 

obj_sciana to zwykły object bez kodu, posiada jedynie zwykły czarny sprite

obj_podloga tak samo

 

Za światło odpowiada obj_hud

 

Create:

surf=surface_create(1920,1080);

setl=20;

 

Step:

ccc=make_color_rgb(setl,setl,setl+10);

color=merge_color(ccc,c_white,2) //tworzymy mieszanke kolor�w

surface_set_target(surf)//w�aczmy tryb rysowania po surface

draw_clear(color) // czy�cimy surfaca

draw_set_blend_mode(bm_subtract) // ustawaimy blend mode "odwrocenie koloru"

 

//swiatlo wokol gracza

playerx=obj_gracz.x-view_xview;

playery=obj_gracz.y-view_yview;

 

//swiatlo wokol gracza

draw_circle_color(playerx,playery,200,c_white,c_black,0)

//swiatlo latarki Tak wyglada sprite swiatla latarki

if obj_gracz.eqlight==1 and obj_gracz.light==1

{

draw_sprite_ext(spr_latarka_light,0,playerx,playery,1,1,obj_gracz.image_angle,c_

white,1);

}

 

//swiatlo wystrzalu

if obj_gracz_rece.strzal_light==1

{

obj_gracz_rece.strzal_light=0

draw_sprite_ext(spr_strzal_light,0,playerx,playery,2,2,obj_gracz.image_angle,c_w

hite,1);

}

 

draw_set_blend_mode(bm_normal) //ustawiamy normalny tryb blendingu...

surface_reset_target()// konczymy tryb rysowania

 

Draw:

draw_set_blend_mode(bm_subtract)//ponownie odwracamy kolory

draw_surface(surf,view_xview,view_yview)//rysujemy surfaca

draw_set_blend_mode(bm_normal)//i ustawiamy normalny blending xD;

 

Jeśli ktos da rade, pomóżcie

Z Góry Dzięki

Odnośnik do komentarza
Udostępnij na innych stronach

nie bardzo wiem od czego mam zacząć, te światła i cienie, mógłby ktoś wyjaśnić jak działają shadery

tylko podstawy, jakie dane sie podaje. przydał by się też przykład, ucze się tak że przerabiam gotowy przykład, bawie się danymi, sprawdzam co i jak działa i za co odpowiada i z tą wiedzą jestem w stanie sam od podstaw napisać odpowiedni kod

 

Wiem że taki temat jak shadery juz pewnie był ale mi chodzi o mój konkretny przypadek, o pomysł w jaki sposób użyć go do mojej gry

 

dzięki Konrad-GM, jak to rozkminie to może coś z tego być

nie zauważyłem tej opcji Dester, następnym razem użyje [ gml][ /gml] chociaż nie wiem dlaczego niektore bbcode nie działa u mnie poprawnie jak np spoiler czy wspomniany gml

Odnośnik do komentarza
Udostępnij na innych stronach

Panie...teraz mamy takie dobrodziejstwo jak miliiijony tutoriali na youtube, przez to chyba tak mało jest postów w tym temacie ostatnio;d

https://www.youtube.com/results?search_quer...system+tutorial Do wyboru do koloru, już widzę taki który powinien Cię zainteresować ;)

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