XxMichałxX Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 Użyłem za zgodą Nikasa kod z jego gry na światło wokół gracza. No i teraz nie wiem jak zrobić żeby obiekty były niewidoczne pod ciemnościami. Kod: Surfaces: Create: GML surf=surface_create(room_width,room_height) Step: GML color=merge_color(c_black,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" draw_circle_color(swiatlo.x,swiatlo.y,200,color,c_black,0) //rysujemy okrąg ktory bedzie swiatlem draw_set_blend_mode(bm_normal) //ustawiamy normalny tryb blendingu... surface_reset_target()// konczymy tryb rysowania Draw: GML draw_set_blend_mode(bm_subtract)//ponownie odwracamy kolory draw_surface(surf,0,0)//rysujemy surfaca draw_set_blend_mode(bm_normal)//i ustawiamy normalny blending xD Swiatlo: Step: GML y=o_player.y x=o_player.x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 obiekt "ciemności" musi mieć najmniejszy depth ze wszystkich obiektów sceny. np. depth=-10000 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 no ale takowego obiektu nie ma ;/.. chyba ze wszystkim obiektom podwyzsze depth-a edit: ok działa edit: aha obiektu surfaces moglem zmniejszyc POŁĄCZONO: EDIT: Czemu, gdy robie drugi obiektz oddzielnym 'swiatlem' i 'surfacem' i ustawiam dobrze x i y to wychodzi jakies jedno koło z światła które jest w kształcie fasoli? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 obiekt "ciemności" powinien być tylko jeden w roomie, zaś świateł może być wiele. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 Całkowita ciemność też nie jest pożądana, chyba że chcesz żeby gracze się gubili. Ustaw aby lekko było widać planszę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 a jak wtedy dodać drugie światło dostosowując się do tego kodu co u gory podałem? nie znam sie na tym surface.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 GML draw_circle_color(swiatlo.x,swiatlo.y,200,color,c_black,0) //rysujemy okrąg ktory bedzie swiatlem Narysuj drugi taki okrąg. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 efekt: screen: https://gmclan.org/up5208_6_lol.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 Jesteś pewien, że rysujesz ten okrąg NA surface? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 nie, ale ja nie mam totalnie pojęcia co i jak z tym surface a potrzebuję tego do gry.. plz podaj mi kod który doda światło.. bo chce zrobic granat świetlny Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 W Draw obiektu, który ma być źródłem światła: GML surface_set_target(surf) draw_set_blend_mode(bm_subtract) draw_circle_color(swiatlo.x,swiatlo.y,200,color,c_black,0) draw_set_blend_mode(bm_normal) surface_reset_target() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 teraz to mi myszka lata w rozne strony a granat lata za ekranem :crying: :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 7 Marca 2009 Udostępnij Opublikowano 7 Marca 2009 No tak, nie zauważyłem głupiego błędu (który swoja drogą mogłeś poprawić...). Id surface'a jest trzymany w zmiennej surf, która jest zmienną lokalną, więc nie dostaniemy się do niej z poziomu innego obiektu. Po prostu zapisz id nowo utworzonego surface do zmiennej globalnej (global.surf). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Marca 2009 Autor Udostępnij Opublikowano 7 Marca 2009 ja poprostu wsadziłem ten kod do obiektu surfaces ktory jest odpowiedzialny za światło wokol playera.. czyli zrobic inny obiekt i on ma miec odzielny 'surf' czy ma miec ten sam surf co od playera tylko ze wtedy zrobic global.surf? edit: zrobilem tak i znowu myszka lata a granat nie swieci ale go widac w ciemnosciach xd 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ę