Easeful Opublikowano 30 Stycznia 2013 Udostępnij Opublikowano 30 Stycznia 2013 W jaki sposób można na surface rysować np. sprite lub daną figurę geometryczną ustawiając jej przezroczystość z tym, że nie ma nakładać się na to co jest pod spodem tylko zastępować to miejsce sobą (tak jak w edytorze grafiki funkcja Replace)? Edit: czy służy do tego funkcja draw_set_blend_mode()? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 30 Stycznia 2013 Udostępnij Opublikowano 30 Stycznia 2013 Ta funkcja jest odpowiedzią na twoje pytanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Easeful Opublikowano 30 Stycznia 2013 Autor Udostępnij Opublikowano 30 Stycznia 2013 No więc tak: przeczytałem w Game Maker Help jak działa, użyłem subtract mode, wszysto gra ale teraz mam problem z całym surface. W zasadzie to używam tego pierwszy raz i nie wiem co jest źle, ale dzieją się absurdalne rzeczy. GML surface_set_target(nightsur); draw_set_alpha(night); draw_set_color(c_black); draw_rectangle(0,0,view_wview,view_hview,0); draw_set_alpha(1); draw_set_blend_mode(bm_subtract); draw_circle(oHero.x-view_xview,oHero.y-view_yview,96,0); draw_set_blend_mode(bm_normal); surface_reset_target(); draw_surface(nightsur,view_xview,view_yview); Nie wiem dlaczego, ale cały surface "fruwa" sobie, co prawda w takim samym kierunku i w tym samym czasie co view, ale porusza się szybciej tak jakby był w ogóle w innej rozdzielczości :C Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Stycznia 2013 Administratorzy Udostępnij Opublikowano 30 Stycznia 2013 jak masz surface 800x600, a pozycja hero to 1000,200 - no to niestety jest on już poza surface. Może w tym tkwi problem? Surface jest zawsze wypełniane od 0,0, nie ważne jakie masz viewy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Easeful Opublikowano 30 Stycznia 2013 Autor Udostępnij Opublikowano 30 Stycznia 2013 Racja, racja, pozwól że się wytłumaczę: GML draw_surface(nightsur,view_xview,view_yview); Liczyłem na to, że surface będzie podążać za viewem. Przepisywałem cały kod poruszania się view'a, wszystko zmieniałem głowiłem się aż się roześmiałem, bo dopiero przed chwilą doszedłem do tego, że surface nie jest rysowany na roomie, tylko bezpośrednio na okienku gry :D Edit: Nawet pojawiły się kolejne dziwne problemy, bo efekty (above) są rysowane wyżej niż ów surface a to sprawiło (nie wiem z jakiej racji), że efekty również zaczęły pojawiać się w pozycjach bezwzględnych do okna gry o.O . Ale już to poustawiałem. Jedyne na co nie mam patentu, to losowe syfne wzory na początku gry na surface, może będę w create po prostu czyścić używając rectangle 800x600 na subtract mode Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 30 Stycznia 2013 Udostępnij Opublikowano 30 Stycznia 2013 Te syfne wzory to stare dane w pamięci karty graficznej. Musisz wyczyścić surface w create tak jak napisałeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Stycznia 2013 Administratorzy Udostępnij Opublikowano 30 Stycznia 2013 I nie rysować póki nie jest czyste. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Easeful Opublikowano 1 Lutego 2013 Autor Udostępnij Opublikowano 1 Lutego 2013 Mam jeszcze takie pytanie i prośbę o wyjaśnienie. Aby uzyskać jakiś kolor światła robię tak, że rysuję najpierw na bm_subtract sprite światła, który wycina kawałek mroku, i później w tym samym miejscu rysuję drugi sprite o tym samym kształcie na add lub normal i na alpha 0.2 z tym, że ten sprite jest zakolorowany np. do żółtego. Wiem, że to nie jest dobre rozwiązanie, widziałem w przykładach użycie draw_clear_alpha() ale nie rozumiem za bardzo na czym to polega. Czy mógłby ktoś pokazać jakoś prosto jak to działa i jak to zrobić w najlepszy sposób? 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ę