Filar Społeczności Wojzax Opublikowano 31 Maja 2018 Filar Społeczności Udostępnij Opublikowano 31 Maja 2018 Macie może jakieś pomysły jak można by zrobić chodzenie w wysokiej trawie w grze z widokiem 3/4? Wymyśliłem żeby rysować połowę gracza przy kolizji jego x i y z trawą. Ale zawsze są jakieś problemy przy krańcach trawy, gracz wystaje na dole / po boku i całe złudzenie się psuje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 1 Czerwca 2018 Udostępnij Opublikowano 1 Czerwca 2018 Może zrób trawę 4x mniejszą i to ją rysuj dopiero w kolizji z dolną połową rycerza? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Czerwca 2018 Administratorzy Udostępnij Opublikowano 1 Czerwca 2018 Tak myślę, że maska kolizji powinna być tylko na tym jasno-beżowym elemencie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 1 Czerwca 2018 Autor Filar Społeczności Udostępnij Opublikowano 1 Czerwca 2018 Wciąż miałem problem z wystającymi fragmentami po boku, więc stanęło na oddzielnym obiekcie dla każdego rycerza który zajmuje się rysowaniem dolnej części sprite'a. Kolejny problem jaki mam to to że używam Cytuj draw_sprite_part_ext(sprite_index,image_index, 0,0,sprite_width,sprite_height-40, // rysowanie gornej czesci sprite'a x-sprite_xoffset,y-sprite_yoffset, // x i y image_xscale,image_yscale, //skalowanie c_white,image_alpha) Origin sprite'a to (48,60), ale ta funkcja rysuje sprite od zera ale jakby w punkcie originu i wymusza ręczne jego zmienianie (odejmując sprite_xoffset i sprite_yoffset od x i y) Kiedy jako xscale dam 1 wszysko jest ok, ale gdy dam -1 sprite całkiem znika Nie mam pojęcia dlaczego tak się dzieje, możliwe że odbija go w poziomie względem zmienionego originu dziwne to jest. @EDIT: okej, już czaję. x i y w tej funkcji odpowiadają za to skąd jest rysowany sprite i jednocześnie wskazują punkt poprzez który następuje odbicie sprite'a. To prowadzi to sytuacji w której można odbić sprite albo w lewo albo w prawo, chyba nie da się odbić przez środek hmm @EDIT2: już myślałem że nic nie pomoże, ale już wiem co było problemem - przy obliczaniu sprite_width game maker bierze pod uwagę sprite_xscale (jeśli xscale będzie -1 to sprite_width będzie na minusie!). Wystarczyło więc pomnożyć sprite_width przez sprite_xscale żeby się wyrównało i działa!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Czerwca 2018 Udostępnij Opublikowano 1 Czerwca 2018 ale depth = -y nie rozwiązywał sprawy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 1 Czerwca 2018 Autor Filar Społeczności Udostępnij Opublikowano 1 Czerwca 2018 Nnno nie, bo jak wystaje rycerzyk z boku to widać że nie ma nóg. A jak zrobisz rysowanie dwóch części tułowia to jedna ma być pod a druga nad trawą. Bez dwóch obiektów tak się nie da. Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Czerwca 2018 Udostępnij Opublikowano 1 Czerwca 2018 Aha dobra, na początku nie zrozumiałem tego problemu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 1 Czerwca 2018 Udostępnij Opublikowano 1 Czerwca 2018 A spróbuj zrobić tak: Jeżeli nie styka się z trawą rysuj normalnie. Jeżeli styka się z trawą rysuj dolną część, potem trawę na pozycji obiektu z którym kolidujesz, potem górną połowę. Chociaż jak teraz myślę to może być z tą kolejnością operacji problem przy zetknięciu z dwoma obiektami trawy. Edit: Mimo zauważenia błędu w mojej logice i tak zapostowałem bo jakby zedytować ten proces myślowy którym zarzuciłem raczej znajdziesz rozwiązanie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 1 Czerwca 2018 Autor Filar Społeczności Udostępnij Opublikowano 1 Czerwca 2018 To mogłoby być lepsze rozwiązanie w sumie. Chyba wydajniejsze. Problem mógłby się pojawić gdy dwie jednostki dotykają tej samej kępki trawy - jeśli jest jakaś przezroczystość (tak jak u mnie w spricie zboża) to będzie się na siebie nakładać. Ale w sumie dobry pomysł muszę przetestować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Czerwca 2018 Udostępnij Opublikowano 2 Czerwca 2018 A co gdyby tak sprity graczy podzielić na 4 części? I analogicznie do pierwszego sposobu, ukrywać także bok postaci która wchodzi w kolizję. W zasadzie to podział na 3 części była by wystarczająca bo góra jest zawsze widoczna. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 2 Czerwca 2018 Udostępnij Opublikowano 2 Czerwca 2018 A nie łatwiej podzielić trawę na 4 części? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Czerwca 2018 Udostępnij Opublikowano 2 Czerwca 2018 Mniej optymalne, zgaduję że wyjdzie więcej spritów do rysowania bo bloków trawy będzie więcej niż ludzików. Ale podzielenie trawy na takie 4 czy nawet 5 warstw w poziomie byłoby chyba najładniejsze 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ę