Skocz do zawartości

Animowane sprity z "przezroczystością"


TzCPP

Rekomendowane odpowiedzi

Witam! Mój pierwszy post i temat na tym forum. Od... wczoraj, siedzę w GM'ie. Stworzyłem sobie na kartce projekt gry, wykonałem pierwszą grafikę, pierwsze funkcje itd... Ale czas na "drugą" grafikę, czyli bardziej dopracowaną, bardziej szczegółową, ogólnie ładniejszą. W projekcie wykminiłem sobie, że sprity będę zapisywał do formatu *.PNG, dlaczego? Ponieważ ten format obsługuje przezroczystość. Jednak z tego co zauważyłem, GM źle mi obsługuje tą przezroczystość. Wymyśliłem sobieże od np. noża będą odchodzić promienie które mają 50% widoczności. Powinny one zlać się z tłem gry, ale tutaj tak nie jest. GM nie wie, że tak ma być, dlatego odczytuje prawie całego sprita z żółtym tłem (kolorem promieni) i robi to w taki sposób.. że to wygląda jakbym narysował sobie w paincie żółty kwadrat a na nim biały marny nożyk. To pierwszy problem. Drugi: chciałbym aby wszystko prócz tła było animowane. Przykładowo od nożyka odchodzą promienie, które na zmiane zmieniają swoją pozycje. Ustaliłem że ma to być tak: rysuje 2 nożyki obok siebie (2 klatki) i zapisuje do pliku *.PNG. 1 klatka ma wymiary 14*14px, więc cały plik ma 28*14px. Chciałbym aby GM załadowało mi sprita i co pół sekundy zmieniało klatke 1,2,1,2,1,2.... 3 sprawa, to jak wykonać animacje taką: Postać stoi - klatki 1,2,1,2.. biegnie w lewo - klatki 3,4,3,4.. biegnie w prawo - klatki 5,6,5,6.. itd. I 4 sprawa (ta ostatnia), GM ładuje sprita - animacja klatki 1,2,3,4,5, jest to spadająca kropla ze źródła, jeżeli postać dostanie taką kroplą następuje reakcja - AŁA!. Ale nie gdy wejdzie w sprita tylko w samą krople która pochodzi ze sprita. To tyle :) pogrubiłem początki "problemów, spraw", aby było czytelniej. Z góry dziękuję za odpowiedź i mam nadzieję że to wszystko w ogóle da się wykonać. Pozdrawiam - Ja.

Odnośnik do komentarza
Udostępnij na innych stronach

Jaka wersja? W sumie możesz zrobić 2 sprity, jeden z normalną animacją, a drugi jako kanał alpha, a następnie użyć sprite_set_alpha_from_sprite.

 

Powinno Cię zainteresować:

https://gmclan.org/index.php?czytajart=47

 

Jeśli chodzi o animacje w jednym spricie, zmienna odpowiedzialna za numer klatki to image_index, jest też image_speed odpowiedzialne za prędkość animacji. Ogólnie animację można wtedy opisać tak:

GML
image_index = ( ( image_index - a ) mod b ) + a;
Wtedy zawsze będzie odtwarzanie b klatek zaczynając od klatki a.

 

Nie rozumiem problemu ze spadającą kroplą. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Wersja 7.0. Więc grafike ogólnie mam z głowy (mam nadzieję). Lecz jeszcze wiem jak dodawać GML itd.. ale z tym nie ma problemu bo sobie zaraz sprawdze. Ta kropla narysowałem w Paincie jak to ma wyglądać: nowyf.png. 1. Jak wygląda animacja Sprita. 2. Jak ma wyglądać kolizja. Chodzi o to, że Sprite zajmuje cały korytarz, przez co czy bohater wpadnie na krople wody, czy na puste miejsce, to i tak nastąpi kolizja. Chciałbym aby kolizja nastąpiła tylko, gdy bohater wpadnie na spadającą krople.

Odnośnik do komentarza
Udostępnij na innych stronach

Hm, to trzeba by uwzględnić uderzenie w określonym momencie animacji ( określonej klatce, gdy kropla uderza o głowę bohatera ). Lepiej było by stworzyć pojedynczy obiekt kropli który by poruszał się po prostu w dół, wtedy jest dużo prościej.

Odnośnik do komentarza
Udostępnij na innych stronach

Ymmm.. chodziło o to, aby krople pojawiały się na górze i spadały na dół... no ale.. widzę, że łatwiej będzie zrobić krople, która spada na ziemie i pojawia się spowrotem na górze, tak? Przemyślę to później, chwilowo noc, więc dziękuję za wszystkie odpowiedzi, może ktoś jeszcze napisze. Pozdrawiam - Ja.

Odnośnik do komentarza
Udostępnij na innych stronach

W sumie tak jest na prawdę dużo łatwiej. Kropla może się pojawiać na górze i niszczyć na dole, a miejsca w których mają pojawiać się krople możesz zaznaczać obiektami które co jakiś czas tworzą je, takie emitery. :)

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