Đây là các bước cơ bản bạn cần phải làm:
Đầu tiên tạo một đối tượng thế giới (tức là btDiscreteDynamicsWorld
) để lái mô phỏng vật lý của bạn.
Bạn đã có một lớp như GameObject
có thể lưu trữ một mô hình cùng với hộp giới hạn và vị trí / định hướng của nó trên thế giới. Thay thế các vị trí / định hướng thông tin với một thể hiện của một vật lý cơ thể đối tượng (ví dụ btRigidBody
) và khi vẽ mô hình, sử dụng các thông tin được cung cấp bởi cơ thể để thay thế. Khi tạo cơ thể, bạn sẽ cần cung cấp khối lượng và hình dạng va chạm phù hợp với khối lượng giới hạn mà bạn đã có. Tôi đã nói về điều này trong câu hỏi khác của bạn quá.
Thêm từng cơ thể của đối tượng trò chơi của bạn vào đối tượng thế giới .
Cập nhật mô phỏng bằng cách bước ra thế giới (tức là kêu gọi stepSimulation
thế giới của bạn).
Và dành một chút thời gian để đọc hướng dẫn vì nó cũng có rất nhiều thông tin.
Chỉnh sửa để bình luận địa chỉ
Tôi co rúm người lại trước khi tôi hỏi nhưng ... làm thế nào để tôi thực hiện những thứ rất cơ bản như chỉ đơn giản là bao gồm các tệp đúng trong trò chơi của mình? Nếu bạn cần thông tin cụ thể tôi đang tìm kiếm các tập tin sẽ xử lý các va chạm cơ thể cứng nhắc. Cũng cảm ơn bạn rất nhiều vì sự giúp đỡ cho đến nay!
Chà, nó sẽ xuất hiện từ nhận xét của bạn rằng bạn chưa bao giờ làm việc với các thư viện C ++ bên ngoài trước đây. Đã được một thời gian kể từ khi tôi làm điều này, nhưng đây là cách tôi nhớ quá trình (trong Visual Studio).
Để bắt đầu, tôi trích dẫn hướng dẫn đã giải thích những gì bạn cần:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Và đây là các bước cơ bản bạn sẽ phải tuân theo để đáp ứng các điều kiện trên ...
1. Bước chuẩn bị
Trước hết, trích xuất tệp bạn đã tải xuống vào một thư mục đã biết, vd C:\Bullet
. Bạn sẽ cần biết đường dẫn đến thư mục này sau.
Bên trong có hai thư mục mà bạn sẽ cần tham khảo trong dự án của mình. Đầu tiên là src
thư mục chứa các .h
tệp tiêu đề mà bạn sẽ đưa vào mã nguồn của mình. Thứ hai là lib
thư mục chứa các .lib
tệp thư viện mà bạn sẽ liên kết đến dự án của bạn. Lưu ý rằng bao gồm và liên kết là hai điều khác nhau.
Nhưng hiện tại lib
thư mục sẽ trống vì bạn chưa chế tạo động cơ. Vì vậy, hãy tham khảo hướng dẫn về cách xây dựng dự án bằng CMake và Visual Studio chẳng hạn. Nó ở trang 7.
Sau khi bạn thành công, bạn nên có ít nhất ba tập tin trong lib
thư mục: BulletDynamics.lib
, BulletCollision.lib
và LinearMath.lib
(tôi đoán từ hướng dẫn). Bây giờ để tạo kết nối giữa Bullet và dự án của bạn ...
2. Bao gồm các tiêu đề
Trước hết, bạn sẽ cần thêm C:\Bullet\src
thư mục vào các tùy chọn đường dẫn bao gồm dự án của bạn. Bạn có thể làm như vậy trong Visual Studio bằng cách nhấp chuột phải vào dự án của bạn, điều hướng đến Configuration Properties -> C/C++ -> General -> Additional Include Directories
và viết đường dẫn thư mục trong đó.
Sau khi thiết lập, bạn chỉ cần làm #include “btBulletDynamicsCommon.h”
mã của mình. Tiêu đề đó dường như phục vụ như một trung tâm cho tất cả các tính năng bạn yêu cầu.
3. Thư viện liên kết
Cuối cùng, bạn sẽ cần liên kết các thư viện được đề cập ở trên. Frist, dưới Configuration Properties -> Linker -> General -> Additional Library Directories
thêm đường dẫn đến lib
thư mục, hay nói cách khác , C:\Bullet\lib
.
Sau đó, bên dưới Configuration Properties -> Linker -> Input-> Additional Dependencies
, thêm tên của các thư viện vào danh sách các phụ thuộc. Tách mỗi thư viện với một ;
và đừng quên phần mở rộng tập tin. Vì vậy, ví dụ, bạn có thể thêm phần này vào cuối danh sách : BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Sau này, bạn sẽ có thể xây dựng và chạy dự án của bạn.
4.4 Integration overview
tôi biết nó rất spartan nhưng nó mô tả quá trình cơ bản. Vì vậy, nếu bạn nhìn vào đó và mã cho các ví dụ về bản demo thì bạn không nên có quá nhiều vấn đề.