İzlemeniz gereken temel adımlar şunlardır:
Önce fizik simülasyonunuzu yönlendirmek için bir dünya nesnesi (yani btDiscreteDynamicsWorld
) oluşturun.
GameObject
Belki de sınırlayıcı kutusu ve dünyadaki konumu / yönelimi ile birlikte bir modeli depolayacak bir sınıfa sahip olmalısınız . Yerine pozisyon / yönlendirme bilgileri ile bir fizik örneğine gövdesi nesnesi (örneğin btRigidBody
) ve modelini işlenirken, bunun yerine gövde tarafından sağlanan bilgileri kullanabilir. Vücudu oluştururken, sahip olduğunuz sınırlayıcı hacimlere uyması gereken kütlesini ve çarpışma şeklini sağlamanız gerekir. Bu konuyu başka sorunuzda da konuşmuştum .
Oyun nesnenizin gövdelerinin her birini dünya nesnesine ekleyin .
Simülasyonu dünyaya adım atarak güncelleyin (yani dünyanızı arayarak stepSimulation
).
El kitabını okumak için biraz zaman ayırın, çünkü çok fazla bilgiye sahiptir.
Adres yorumunu düzenle
Sormadan önce küfrediyorum ama ... oyunuma doğru dosyaları dahil etmek gibi çok temel şeyleri nasıl yaparım? Eğer spesifikasyonlara ihtiyacınız varsa, katı cisim çarpışmalarıyla ilgilenecek dosyaları arıyorum. Ayrıca şimdiye kadar yardım için çok teşekkür ederim!
Yorumunuzdan daha önce hiç harici C ++ kütüphaneleriyle çalışmadığınız anlaşılıyor. Bunu yaptığımdan bu yana bir süre geçti, ancak bu süreci (Visual Studio'da) hatırlıyorum.
Yeni başlayanlar için neye ihtiyacınız olduğunu açıklayan kılavuzu alıntılarım:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Ve yukarıdaki koşulları yerine getirmek için izlemeniz gereken temel adımlar ...
1. Hazırlık Adımı
Her şeyden önce, indirdiğiniz dosyayı bilinen bir dizine çıkarın, örn C:\Bullet
. Bu klasörün yolunu daha sonra bilmeniz gerekir.
İçinde projenizde referans vermeniz gereken iki klasör var. Birincisi , kaynak kodunuza ekleyeceğiniz başlık dosyalarını src
tutan klasördür . İkincisi, projenize bağlayacağınız kütüphane dosyalarını tutacak klasördür . Dahil etme ve bağlamanın iki farklı şey olduğuna dikkat edin..h
lib
.lib
Ancak lib
klasör şimdilik boş olmalı, çünkü henüz motoru inşa etmediniz. Bu nedenle, örneğin CMake ve Visual Studio kullanarak projenin nasıl oluşturulacağına ilişkin kılavuza bakın. Sayfa 7'de.
Eğer başarılı sonra, en az üç dosya olmalıdır lib
klasördeki: BulletDynamics.lib
, BulletCollision.lib
ve LinearMath.lib
(ı manuel tahmin ediyorum). Şimdi Bullet ile projeniz arasındaki bağlantıyı kurmak için ...
2. Başlıkları Dahil Et
Her şeyden önce, C:\Bullet\src
klasörü projenizin yol ekleme seçeneklerine eklemeniz gerekir . Projenizi sağ tıklatıp Configuration Properties -> C/C++ -> General -> Additional Include Directories
, dizin yolunu oraya yazarak ve yazarak Visual Studio'da yapabilirsiniz .
Bunu ayarladıktan sonra #include “btBulletDynamicsCommon.h”
, kodunuzu kolayca yapabilirsiniz . Bu başlık, ihtiyaç duyduğunuz tüm özelliklere bir hub işlevi görür.
3. Bağlantı Kütüphaneleri
Son olarak, yukarıda belirtilen kütüphaneleri bağlamanız gerekir. Frist, altında klasöre Configuration Properties -> Linker -> General -> Additional Library Directories
yol ekleme lib
veya başka bir deyişle C:\Bullet\lib
.
Ardından, Configuration Properties -> Linker -> Input-> Additional Dependencies
bağımlılık listesine kitaplıkların adını ekleyin. Her kitaplığı bir ile ayırın ;
ve dosya uzantısını unutmayın. Yani örneğin, sen olabilir eklemek listenin sonuna bu: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Bundan sonra projenizi oluşturabilir ve çalıştırabilirsiniz.
4.4 Integration overview
Çok spartan olduğunu biliyorum ama temel süreci açıklayan bölümdeki kılavuza baktınız mı? Eğer buna ve örnek Demos koduna bakarsanız, çok fazla sorun yaşamamalısınız.