Robię grę 2D, w której jednostki strzelają do siebie strzałami. Znam pozycję strzelca i celu oraz początkową prędkość pocisku. Chcę wiedzieć, jaki kąt powinien mieć pocisk, aby wylądować na celu. Cel może znajdować się na innej wysokości niż strzelec.
Podsumowując, znam v0, R i gi muszę znaleźć kąt (lub wysokość?).
Czytam http://en.wikipedia.org/wiki/Projectile_motion , ale nie mogę znaleźć czegoś związanego z tym, czego potrzebuję.
2d
projectile-physics
trajectory
korn3l
źródło
źródło
Odpowiedzi:
Wzór na znalezienie kąta to
gdzie v jest początkową prędkością startową, g jest stałą grawitacji, xiy to odległość i wysokość celu.
Dwa pierwiastki tego równania dają dwa możliwe kąty. Jeśli wyniki są urojone, twoja początkowa prędkość nie jest wystarczająco duża, aby osiągnąć cel (jeśli chcesz obliczyć kąt zasięgu, przeczytaj to ). Wybór kąta zależy od Ciebie. Wskazane byłoby wybranie najbardziej bezpośredniej ścieżki, tj. Mniejszego kąta.
Poniżej możesz zobaczyć GIF tego równania z różnymi wartościami docelowymi i stałą prędkością uruchamiania.
Zasoby z tego artykułu na Wikipedii
źródło
Na początku tego roku stworzyłem prostą strzelankę. Użyłem następującej metody:
Wcześniejsza odpowiedź: /programming/15364852/move-sprite-diagonally/15365570#15365570
Oblicza trajektorię między dwiema pozycjami.
źródło