Skocz do zawartości

Maskowana tekstura


Rekomendowane odpowiedzi

  • Administratorzy

Hej. Bawiłem się przykładem masek z tutoriala YYG - https://www.yoyogames.com/blog/430/dynamic-rendering-masks i przerobiłem go tak, że jak ustawimy na layerze jakieś sprity, to w ich miejscu będzie się rysowała wybrana przez nas tekstura (za pomocą draw_sprite_tiled).

 

Link do pobrania: https://gmclan.org/up23_18_layers_alpha.html

 

W teorii GMS sam odrzuca sprity z layerów które są poza ekranem, a draw_sprite_tiled rysuje też tylko w widocznej częsci więc powinno to być optymalne - nie rysować wiele więcej niż widać.

 

Poniżej zrzut pokazujący o co chodzi - z lewej mamy room, w którym są dwa layery typu asset (do ustawiania spritów), a z prawej jak to wygląda jak gra ruszy - w miejscu tych spritów pojawia się tekstura, zachowując parametry alpha layera.

 

layery_maski.jpg

 

Nie do końca rozumiem czemu to działa (metodą prób i błędów zaczęło), polecam więc oryginalny przykład, może ogarniecie bardziej niż ja - wygląda to po prostu tak, że mnożymy kanały alpha w pamięci przy rysowaniu.

 

W przykładzie można PPM i LPM tworzyć obiekt na jednym z dwóch layerów, który po czasie zanika.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Wydaje mi się, że tak, trzeba by jednak w globalnej zmiennej trzymać numer klatki i ręcznie go zwiększać. Można też zrobić shader, trzeba tylko wtedy ten skrypt kończący przepisać (dookoła draw_sprite_tiled) - niestety tutaj jest problem, bo w skrypcie nie da się odczytać na jakim layerze jesteśmy, żeby zrobić jakiegoś fajnego switcha (albo auto animację) i trzeba kopiować skrypty, więc jest lekki bałagan :) Ale już to zgłosiłem.

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