Oto podstawowe kroki, które musisz wykonać:
Najpierw utwórz obiekt świata (tj. btDiscreteDynamicsWorld
), Aby przeprowadzić symulację fizyki.
Powinieneś już mieć taką klasę, GameObject
że może przechowuje model wraz z obwiednią i pozycją / orientacją na świecie. Zastąpić w pozycji / orientacji informacji o wystąpieniu fizyki ciała obiektu (tj btRigidBody
), a podczas odtwarzania modelu na podstawie informacji dostarczonych przez organizm, a nie. Tworząc ciało, musisz podać jego masę i kształt kolizji, które powinny odpowiadać ograniczonym objętościom, które już masz. Mówiłem o tym również w innym pytaniu .
Dodaj ciała każdego obiektu gry do obiektu świata .
Zaktualizuj symulację , krocząc po świecie (tj. Wzywając stepSimulation
swój świat).
Poświęć trochę czasu na przeczytanie instrukcji, ponieważ zawiera ona również wiele informacji.
Edytuj w celu zaadresowania komentarza
Kulę się zanim zapytam, ale ... jak mogę zrobić bardzo podstawowe rzeczy, takie jak po prostu dołączenie odpowiednich plików do mojej gry? Jeśli potrzebujesz konkretnej informacji, szukam plików, które poradzą sobie ze sztywnymi zderzeniami ciała. Dziękuję również bardzo za dotychczasową pomoc!
Z twojego komentarza wynika, że nigdy wcześniej nie pracowałeś z zewnętrznymi bibliotekami C ++. Minęło trochę czasu, odkąd to zrobiłem, ale tak pamiętam proces (w Visual Studio).
Na początek cytuję instrukcję, która już wyjaśnia, czego potrzebujesz:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Oto podstawowe kroki, które musisz wykonać, aby spełnić powyższe warunki ...
1. Krok przygotowawczy
Przede wszystkim rozpakuj pobrany plik do znanego katalogu, np C:\Bullet
. Będziesz musiał później poznać ścieżkę do tego folderu.
Wewnątrz znajdują się dwa foldery, do których należy odwołać się w swoim projekcie. Pierwszy to src
folder, w którym przechowywane są .h
pliki nagłówkowe, które zostaną uwzględnione w kodzie źródłowym. Drugi to lib
folder, który będzie trzymać .lib
pliki biblioteki, które będą odwołuje się do projektu. Zauważ, że dołączanie i łączenie to dwie różne rzeczy.
Ale lib
folder powinien być na razie pusty, ponieważ nie zbudowałeś jeszcze silnika. Więc zapoznaj się z instrukcją, jak zbudować projekt przy użyciu CMake i Visual Studio, na przykład. Jest na stronie 7.
Po odnieść sukces, trzeba mieć co najmniej trzy pliki w lib
folderze: BulletDynamics.lib
, BulletCollision.lib
i LinearMath.lib
(mam zgadywać z podręcznika). Teraz, aby nawiązać połączenie między Bullet a twoim projektem ...
2. Dołącz nagłówki
Przede wszystkim musisz dodać C:\Bullet\src
folder do opcji ścieżki dołączania do projektu. Możesz to zrobić w programie Visual Studio, klikając projekt prawym przyciskiem myszy, nawigując Configuration Properties -> C/C++ -> General -> Additional Include Directories
i zapisując tam ścieżkę katalogu.
Po skonfigurowaniu możesz po prostu zrobić #include “btBulletDynamicsCommon.h”
kod. Ten nagłówek wydaje się służyć jako centrum wszystkich wymaganych funkcji.
3. Połącz biblioteki
Na koniec musisz połączyć wyżej wymienione biblioteki. Frist, pod Configuration Properties -> Linker -> General -> Additional Library Directories
dodać ścieżkę do lib
folderu, lub innymi słowy C:\Bullet\lib
.
Następnie w obszarze Configuration Properties -> Linker -> Input-> Additional Dependencies
dodaj nazwę bibliotek do listy zależności. Oddziel każdą bibliotekę od ;
i nie zapomnij rozszerzenia pliku. Tak na przykład, można dodać to do końca listy: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Po tym powinieneś być w stanie zbudować i uruchomić swój projekt.
4.4 Integration overview
wiem, że jest bardzo spartański, ale opisuje podstawowy proces. Więc jeśli spojrzysz na to i kod na przykładowe dema, nie powinieneś mieć zbyt wielu problemów.