W przypadku gry podobnej do Peggle chcę tworzyć bloki zgodne z krzywą:
Bloki znikałyby wtedy, gdy uderzyła w nie piłka.
Udało mi się narysować niektóre w poziomie, ale mam problem z zmuszeniem ich do podążania ścieżką:
Jak mam to zrobic? Czy muszę tworzyć obiekty Box2D z niestandardowymi wierzchołkami?
collision-detection
box2d
geometry
curves
Moerin
źródło
źródło
Odpowiedzi:
Biorąc pod uwagę krzywą „root”, oto jak możesz wygenerować wierzchołki bloków.
Krzywa korzenia znajduje się na środku, w kolorze czarnym. Punkty kontrolne są oznaczone czerwonymi
X
s.W skrócie : Zrobiłem Béziera i próbowałem go (w konfigurowalnym tempie). Następnie znalazłem wektor prostopadły wektora z każdej próbki do następnej, znormalizowałem go i przeskalowałem do (konfigurowalnej) połowy szerokości, najpierw w lewo, a potem odwrotnie w prawo. Potem narysowałem.
Rzeczy, które możesz dodać do tego:
Oto mój kod. Jest napisany w Lua (dla frameworka LÖVE ), ale myślę, że jest czytelny dla każdego.
Jeśli chcesz się nim bawić: Pobierz LÖVE i umieść powyższy kod
main.lua
we własnym katalogu. Umieśćvector.lua
zHUMP
biblioteki w tym samym katalogu. Uruchom golove <that-directory>
z wiersza poleceń.Poruszaj myszką! Środkowy punkt kontrolny jest ustawiony na położenie myszy:
źródło