Skocz do zawartości

Rekomendowane odpowiedzi

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.

  • Super (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To jest fantastyczne! Daje to bardzo dużo możliwości. Czy tekstura może być animowana?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×