SimianVirus7 Opublikowano 30 Marca 2022 Udostępnij Opublikowano 30 Marca 2022 No witam, a ja znowu z tymi granatami. Zrobiłem lot granatu po zakrzywionej linii, tak jak @Uzjel narysował. Teraz mam zagwozdkę jak zrobić do niego cień. Gdyby to była platformówka, to bym sobie pewnie poradził, ale tu już wchodzi większa matematyka. Kod kiedyś ogarnął mi @Konrad-GM i to jest cała mechanika lotu: CREATE: ghost_x = x; ghost_y = y; target_x = x + lengthdir_x(15+speed, dir) + lengthdir_x(10, dir-90); target_y = y + lengthdir_y(15+speed, dir) + lengthdir_y(10, dir-90); start_distance = point_distance(ghost_x, ghost_y, target_x, target_y); STEP: // poruszamy obiektem w kierunku celu var angle = point_direction(ghost_x, ghost_y, target_x, target_y); var spd = 5; ghost_x += lengthdir_x(spd, angle); ghost_y += lengthdir_y(spd, angle); // liczymy aktualna odleglosc var distance = point_distance(ghost_x, ghost_y, target_x, target_y); var angle90 = angle + 90 * image_yscale; // glowna funkcja przesuniecia var factor = sin((distance / start_distance) * pi); var maxlen = sqr(log2(start_distance)); var offx = lengthdir_x(maxlen * factor, angle90); var offy = lengthdir_y(maxlen * factor, angle90); // dodajemy przesuniecie do realnej pozyci obiektu x = ghost_x + offx; y = ghost_y + offy; Wynik: granade_cien.mp4 Jakieś nakierowania, pomysły? Znam początkową pozycje granatu, miejsce gdzie wyląduje oraz x/y aktualnej pozycji i nie wiem jak to posklejać, żeby cień rysował się mniej więcej tak: Problem mam w tym, że granat może lecieć w 360º a nie tylko na boki, w osi X Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Marca 2022 Administratorzy Udostępnij Opublikowano 30 Marca 2022 A nie wystarczy rysować cienia na pozycji ghost_x i ghost_y ? Z tego co rozumiem, to jest aktualna pozycja granatu "na podłodze", a jego lewitacja jest uzyskiwana przez dodanie offx i offy. SimianVirus7 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 30 Marca 2022 Autor Udostępnij Opublikowano 30 Marca 2022 Tak ?Dziękuje bardzo, wszystko działa ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 30 Marca 2022 Udostępnij Opublikowano 30 Marca 2022 Ja bym tak tego nie robił. Rozbijesz się na wykrywaniu kolizji ze ścianami. Offset powinien nie wpływać na pozycję, a tylko na rysowanie. Podobnie jak w moim najnowszym tutorialu ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Marca 2022 Administratorzy Udostępnij Opublikowano 30 Marca 2022 Już nie chciałem na to zwracać uwagi, ale ja też bym zamienił ghost_x z x. Dla kolizji ważniejsza będzie pozycja gdzie jest cień, mniej ważne rysowanie. Ewentualnie przy kolizjach będzie trzeba sprawdzać offset jako wysokość, ale wciąż zamiana tych zmiennych ułatwia całość, bo można skorzystać z wbudowanych kolizji, zamiast rzeźbić własny kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 30 Marca 2022 Autor Udostępnij Opublikowano 30 Marca 2022 Tzn ja już kolizję mam zrobioną. W pierwszej fazie lotu jej nie ma, tak aby można było przerzucić granat nad ścianami. Dopiero przy pierwszym odbiciu kolizja jest włączona i wtedy granat może odbić się od solidu. (cień nie zrobiony, nie tykałem tego jeszcze, tylko patrzyłem czy ogólnie działa) Untitled Project.mp4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 31 Marca 2022 Udostępnij Opublikowano 31 Marca 2022 A jak kursor umieścisz wewnątrz ścian do rozbicia to jak się zachowa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 31 Marca 2022 Autor Udostępnij Opublikowano 31 Marca 2022 Potrząśnie się słabo i zatrzyma. Generalnie miało to tak wyglądać ale teraz wpadłem na pomysł, że w sumie mogę zrobić X na kursorze i uniemożliwić wyrzucenie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 31 Marca 2022 Udostępnij Opublikowano 31 Marca 2022 No, jak chcesz to w to brnij, ale chyba wygodniej by było, tak jak pisaliśmy wyżej 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ę