Flame Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 Witajcie, Nie mam pomysłu jak zrobić aby światło nie wchodziło na dany obiekt. Szukałem też trochę po forum lecz odpowiedzi nie znalazłem. Jak widzicie na Screenie ściana jest oświetlona i nie wiem co zrobić aby tak nie było tzn. nie chodzi mi o jakieś skomplikowane zachowania się świateł pod kątem. Chodzi mi o to jak to zrobić żeby dany obiekt nadal pozostawał ciemny gdy znajduje się w promieniu rysowanego światła ? kod: GML event draw var r, bbb, i; r=75 //promień bbb=15 //zanikanie koła, zmiana liczb koł surface_set_target(global.light) draw_clear_alpha(c_black,0.9);//Przyciemnienie draw_set_blend_mode(bm_subtract); draw_set_alpha(1/bbb); for (i=0; i<=bbb; i+=1) { draw_circle(obj_player.x, obj_player.y, (r-(r/bbb*i)), false); } draw_set_alpha(1); draw_set_blend_mode(bm_normal); surface_reset_target(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 Potrzebujesz: -Dokumentację -wyszukać w niej draw_primitive_begin -znać trochę trygonometrii Za długo by tłumaczyć. Być może zedytuje ten post lub napiszę nowy, być może nie. Ale wskazówki już masz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 Ten draw_circle rysuje po surface na biało? Bo jak tak to możesz po pętli z draw_circle zrobić drugą pętle która weźmie obiekty w obszarze i je na tym surface narysować ale na czarno. Chyba że to działa na odwrót to wtedy nie mam pomysłu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 Huder, chcialem to na poczatku zaproponowac, ale to nie zalatwi sprawy ze swiatlem po drugiej stronie bloku. Oraz wymagałoby zmiane surface z przeźroczystego na czarno-biały, zamianę na sprite a potem rysowanie z alphy na sprite. A nie, przecież i tak by nadrysowało tym samym spritem. Dlatego vertexy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 On chce tylko by ściana nie świeciła a nie by światło przez nią też nie przechodziło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Flame Opublikowano 15 Kwietnia 2014 Autor Udostępnij Opublikowano 15 Kwietnia 2014 Huder, chcialem to na poczatku zaproponowac, ale to nie zalatwi sprawy ze swiatlem po drugiej stronie bloku. Dlatego vertexy. Jutro spróbuje ogarnąć, dzięki wam za odpwiedzi :) I am Vader - Blok jest na tyle duży ,że promień rysowanego koła nie dociera za ścianę ale spróbuje, choć trygonometrii w gimbazie jeszcze nie mieliśmy... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 15 Kwietnia 2014 Udostępnij Opublikowano 15 Kwietnia 2014 cóż, jeżeli nie dociera poza to proste GML with(nazwa_obiektu_bloku) { draw_self(); } dopisane za "draw_set_blend_mode(bm_normal);" starczy. Zakładając, że wszystko jest takie ciemne z natury, a nie nakładasz ciemną warstwę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 tia, a nie mozna dac sciance mniejszego depth'a niz na obiekt z surface?! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 surface to nie draw. Surface rysuje w takiej kolejnosci w jakiej mu podasz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 Ale surface też musisz narysować i wtedy możesz brać pod uwagę depth obiektu który go rysuje. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 Chyba nie do końca się wyspałem, skoro o tym nie pomyślałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Flame Opublikowano 16 Kwietnia 2014 Autor Udostępnij Opublikowano 16 Kwietnia 2014 Dzięki draw_self() pomógł w rozwiązaniu problemu :) . A pomysł z depth nie działa mimo zmniejszenia depthu obiektu odpowiadającego za światło jak i surfacea w kodzie (również dla upewnienia powiększałem depth ściany). A może jednak depth nie działa na surfaceach , albo czegoś nie ogarniam :/. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 depth sciany powinien byc nizszy niz depth obiektu ktory rysuje surface czylli najpierw narysuje surface i potem narysuje scianki, co da efekt zasloniecia surface przez sciany Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę