Widziałem tę grę
Fantazyjne spodnie 2 . Zauważyłem, oprócz fizyki i pięknych animacji, to, że postać porusza się po zboczach, a nawet po zakrzywionych zboczach. Mam niewielkie doświadczenie w Box2d, ale ta koncepcja zakrzywionych stoków jest dla mnie nowa. Byłoby to dla mnie bardzo pomocne, gdyby ktoś mnie oświecił na temat tej koncepcji i jej realizacji. Nawet jeśli implementacja nie znajduje się w box2d, jest mile widziana.
game-design
flash
box2d
physics-engine
Wisznu
źródło
źródło
Odpowiedzi:
Jak uzyskać krzywe w Box2D?
W niewydanej wersji Box2D istnieją dwa nowe typy kształtów, b2LoopShape i b2EdgeShape , które pozwalają budować krzywe z sekwencji segmentów linii.
W wydanej wersji można użyć wielu małych skrzynek ustawionych pod kątem, aby uzyskać podobny efekt, ale ciała mają tendencję do robienia niestabilnych i nieoczekiwanych rzeczy w pobliżu punktów połączenia. Dlatego polecam korzystanie z niepublikowanej wersji.
Jak postać może spaść z krzywej?
Niech postać będzie kołem! Moje pytanie na temat fizyki platformówek ma trochę dyskusji na ten temat , ale podstawową ideą jest zamontowanie ciała postaci na obracającym się kole i poruszanie się poprzez zastosowanie siły obrotowej na kole. Mimo że (a właściwie dlatego, że) koło ma tarcie, siła grawitacji skierowana w dół spowoduje, że obróci się ono w dół zbocza - jak prawdziwe koło. Zmieniając parametry silnika przegubu obrotowego , możesz sprawić, aby stawiał opór obrotowi tak bardzo, jak to konieczne, aby uniknąć staczania się po małych pochyłościach.
źródło
Fantazyjne spodnie zostały stworzone we Flashu, a Flash ma specjalną metodę o nazwie „hitTest”, która pozwala przetestować piksel (w tym przypadku prawdopodobnie wykonuje 2-3 trafienia na piksel wzdłuż postaci fantazyjnych spodni) względem tego, co jest rysowane w wyznaczonym obiekcie ruchomym. Sprawienie, by było to właściwe, może być nieco trudne, ale ta wbudowana funkcja sprawia, że tak wiele gier Flash ma kolizje z zakrzywionymi zboczami. Proces ten jest znacznie bardziej skomplikowany w przypadku większości innych silników i zwykle musi być wykonywany ręcznie, ale istnieje kilka różnych metod.
Metodą, którą najbardziej znam, jest to, że twój silnik jest oparty na kafelkach (pomyśl Sonic the Hedgehog), kafelki oznaczone jako zakrzywione mogą mieć formułę określającą pozycję kolizji „Y” na podstawie aktualnej pozycji „X” postaci na tej płytce. Musisz określić formułę na podstawie tego, jak strome zbocze i jak zakręty szukasz. Możesz użyć kalkulatora graficznego lub programu graficznego do eksperymentowania z formułami. W ten sposób możesz mieć wiele płytek z różnymi krzywymi i formułami.
źródło