PoxiPol Opublikowano 25 Września 2015 Udostępnij Opublikowano 25 Września 2015 Ok, dodam już do zaawansowanych, bo chcę zaszpanować. Otóż z ciekawości oraz dla nauki programuję fizykę pocisków, ale matematycznie. Wektorowo. Na razie wszystko jest tylko teorią, ale przetłumaczyć na GML to na razie nie mam problemu. Pocisk ma kierunek player.image_angle a to można ładnie przekonwertować na m=tan(player_image_angle), sprawdzając czy nie równa się 90 lub 270, bo wtedy mamy błąd. Tam będzie linia x=player.x. No to ta nasza linia pocisku sprawdza kolizję collision_line czy jak tam, bez problemu. To nam odsyła obiekt z którym mamy kolizję. Jeśli używam ścian gdzie są same proste linie, mogę bez problemu wyliczyć na jakiej pozycji jest kolizja, i z tego obliczać np ricochet itd. Nawet w zaokrąglonych sytuacjach jest koło lub parabola i z niej wyliczamy równanie działań by odzyskać x_collision i y_collision, a później y*x_collision?x*y.colission=0 itd. wyliczamy z tego gradient i przeliczamy na kąt. Mam nadzieję że wszystko ma na razie sens. Dosyć prosta geometria + algebra. I tutaj jest problem, przynajmniej jak na razie na moją logikę. Co mnie martwi, to że na razie to sposób w jaki bym to robił to programował te linie kolizji w obiekcie ręcznie, a lepiej by było zautomatyzować. Proszę, na szybko narysowana moja postać z DnD zwektorowana z kiepskiego rysunku w paincie. A na to po prostu pomysłu dobrego nie mam. Istnieją programy które przerabiają bitmapy na vectory, i właśnie takie coś bym chciał zrobić. Może źle do tego podchodzę? Opinie pls. Vectory są dla mnie ważne bo chcę wyliczać kąt pod którym pocisk udeża. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 25 Września 2015 Udostępnij Opublikowano 25 Września 2015 uch, pisanie fizyki w programie, który ma gotowy silnik fizyczny jeśli chcesz robić odbijanie od jakiegoś nieregularnego sprite'a, to funkcja move_bounce_solid/all() może być tym, czego szukasz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PoxiPol Opublikowano 25 Września 2015 Autor Udostępnij Opublikowano 25 Września 2015 Wiem, ale nie prosiłem o to, bo nie używam silnika fizyki w GMie. Szczerze, jest dosyć do dupy. Chcę to zrobić własną ręką, i być pewny że działa tak jak chcę. Ja tutaj potrzebuję INSTANTOWEGO wyliczenia, wszystko w jednym kroku. Ja nie piszę fizyki per se. Nie potrzebuję grawitacji. Do tego niezbyt mi twoja odpowiedź pomogła, bo wygląda na to że nie przeczytałeś nawet pytania. Ja szukam możliwości przerobienia bitmapy na wektor. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 25 Września 2015 Udostępnij Opublikowano 25 Września 2015 możesz to zrobić ręcznie w Inkscape dla każdego obrazka (wektoryzacja bitmapy), zapisać wynik w jakimś wygodnym formacie i wczytać wektory do GM-a nieco szerzej o wektoryzacji: Inkscape korzysta z silnika Potrace, który mając podaną bitmapę i parametry, wypluwa zbiór wektorów, który można zapisać w dowolnym formacie wektorowym wektoryzacja to nie jest łatwa sprawa, robienie tego w locie nie ma większego sensu - najlepiej jest zwektoryzować wszystkie bitmapy na samym początku, zmodyfikować wektory ręcznie, dopiero potem wrzucić do gry Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PoxiPol Opublikowano 25 Września 2015 Autor Udostępnij Opublikowano 25 Września 2015 Ugh, to popatrz znowu na mój pierwszy post. To już wiem, ja chcę sam jakieś uproszczone wektory robić na podstawie 1 kolorowej bitmapy w gmie :/ Jeśli od teraz nie dasz mi kawałku kodu lub matematyki, proszę nie udzielaj się więcej w temacie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
3r3se7ven Opublikowano 26 Września 2015 Udostępnij Opublikowano 26 Września 2015 Ugh, to popatrz znowu na mój pierwszy post. To już wiem, ja chcę sam jakieś uproszczone wektory robić na podstawie 1 kolorowej bitmapy w gmie :/ Jeśli od teraz nie dasz mi kawałku kodu lub matematyki, proszę nie udzielaj się więcej w temacie. Możesz zrobić w kolizji próbkowania lokalnego pola (tak dużego jak Ci smakuje z tej bitmapy) i z niego uzyskać tangent (styczną) wektora kierunkowego powierzchni kolizji. A dalej to już po ludzku tak jak z rykoszetem. Przydatne w poślizgach 3d (heightmap) by określić czy samolotem jeszcze się ślizgasz po lotnisku czy zaryłeś i urwałeś koło na dziurze. 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ę