Inilah langkah-langkah dasar yang harus Anda ikuti:
Pertama buat objek dunia (yaitu btDiscreteDynamicsWorld
) untuk mengarahkan simulasi fisika Anda.
Anda seharusnya sudah memiliki kelas seperti GameObject
itu yang mungkin menyimpan model beserta kotak pembatas dan posisi / orientasinya di dunia. Ganti dengan posisi / orientasi informasi dengan sebuah contoh dari fisika tubuh objek (yaitu btRigidBody
) dan saat rendering model, menggunakan informasi yang diberikan oleh tubuh sebagai gantinya. Saat membuat tubuh Anda harus memberikan massa dan bentuk tumbukan yang harus sesuai dengan volume yang sudah Anda miliki. Saya sudah membicarakan hal ini di pertanyaan Anda yang lain juga.
Tambahkan masing-masing tubuh objek game Anda ke objek dunia .
Perbarui simulasi dengan melangkahi dunia (mis. Memanggil stepSimulation
dunia Anda).
Dan luangkan waktu untuk membaca manual karena memiliki banyak informasi juga.
Edit ke alamat komentar
Saya merasa ngeri sebelum bertanya tetapi ... bagaimana cara saya melakukan hal-hal yang sangat mendasar seperti hanya memasukkan file yang tepat dalam permainan saya? Jika Anda perlu spesifik saya mencari file yang akan berurusan dengan tabrakan tubuh yang kaku. Juga terima kasih banyak atas bantuannya sejauh ini!
Ya, akan muncul dari komentar Anda bahwa Anda belum pernah bekerja dengan pustaka C ++ eksternal sebelumnya. Sudah lama sejak saya melakukan ini, tetapi ini adalah bagaimana saya mengingat proses menjadi (dalam Visual Studio).
Sebagai permulaan saya mengutip manual yang sudah menjelaskan apa yang Anda butuhkan:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Dan inilah langkah-langkah dasar yang harus Anda ikuti untuk memenuhi persyaratan di atas ...
1. Langkah Persiapan
Pertama-tama, ekstrak file yang Anda unduh ke direktori yang dikenal, misalnya C:\Bullet
. Anda harus mengetahui jalur ke folder ini nanti.
Di dalam ada dua folder yang perlu Anda rujuk dalam proyek Anda. Yang pertama adalah src
folder yang menyimpan .h
file header yang akan Anda sertakan dalam kode sumber Anda. Yang kedua adalah lib
folder yang akan menyimpan .lib
file perpustakaan yang akan Anda tautkan ke proyek Anda. Perhatikan bahwa memasukkan dan menautkan adalah dua hal yang berbeda.
Tetapi lib
folder itu harus kosong untuk saat ini, karena Anda belum membuat mesinnya. Jadi lihat manual tentang cara membangun proyek menggunakan CMake dan Visual Studio misalnya. Ada di halaman 7.
Setelah Anda berhasil, Anda harus memiliki setidaknya tiga file dalam lib
folder: BulletDynamics.lib
, BulletCollision.lib
dan LinearMath.lib
(saya duga dari manual). Sekarang untuk membuat koneksi antara Bullet dan proyek Anda ...
2. Sertakan Tajuk
Pertama-tama, Anda harus menambahkan C:\Bullet\src
folder ke opsi jalur sertakan proyek Anda. Anda dapat melakukannya di Visual Studio dengan mengklik kanan pada proyek Anda, menavigasi ke Configuration Properties -> C/C++ -> General -> Additional Include Directories
dan menulis jalur direktori di sana.
Setelah mengatur itu, Anda cukup melakukannya #include “btBulletDynamicsCommon.h”
pada kode Anda. Header itu tampaknya berfungsi sebagai hub untuk semua fitur yang Anda butuhkan.
3. Tautan Perpustakaan
Akhirnya Anda harus menautkan perpustakaan yang disebutkan di atas. Frist, di bawah Configuration Properties -> Linker -> General -> Additional Library Directories
tambahkan path ke lib
folder, atau dengan kata lain C:\Bullet\lib
,.
Kemudian, di bawah Configuration Properties -> Linker -> Input-> Additional Dependencies
, tambahkan nama perpustakaan ke daftar dependensi. Pisahkan setiap perpustakaan dengan a ;
dan jangan lupa ekstensi file. Jadi misalnya, Anda mungkin menambahkan ini ke akhir daftar: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Setelah ini, Anda harus dapat membangun dan menjalankan proyek Anda.
4.4 Integration overview
saya tahu itu sangat sederhana tetapi tidak menggambarkan proses dasar. Jadi jika Anda melihat itu dan kode untuk contoh Demo maka Anda seharusnya tidak memiliki terlalu banyak masalah.