Saya mengunduh file rilis yang ditemukan di sini , tetapi saya tidak yakin harus mulai dari mana. Dalam permainan saya, saya memiliki sejumlah bujur dan bola, saya ingin semua ini saling bertabrakan. (Mereka semua memiliki jerat dan volume pembatas terkait)
sunting - Saya baru sadar bahwa kuboid sebenarnya memiliki AABB yang terkait dengannya. Saya kira saya harus mengubahnya setidaknya.
Apa langkah-langkah yang harus saya ikuti?
c++
directx
physics-engine
bullet-physics
SirYakalot
sumber
sumber
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.Jawaban:
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 (yaitubtRigidBody
) 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
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:
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 adalahlib
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
danLinearMath.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 keConfiguration 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 kelib
folder, atau dengan kata lainC:\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.
sumber