İzlemeniz gereken temel adımlar şunlardır:
Önce fizik simülasyonunuzu yönlendirmek için bir dünya nesnesi (yani btDiscreteDynamicsWorld) oluşturun.
GameObjectBelki 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ı srctutan 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..hlib.lib
Ancak libklasö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 libklasördeki: BulletDynamics.lib, BulletCollision.libve 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\srcklasö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 Directoriesyol ekleme libveya başka bir deyişle C:\Bullet\lib.
Ardından, Configuration Properties -> Linker -> Input-> Additional Dependenciesbağı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.