Tôi muốn phát hiện khi một (bóng) chạm vào một đối tượng khác (mục tiêu) và tôi muốn biết xung của liên hệ đó.BulletPhysic: lực liên lạc/xung
Tôi biết ba cách để phát hiện địa chỉ liên lạc
gContactAddedCallback
hoặc
int numManifolds = m_dynamicsWorld->getDispatcher()->getNumManifolds();
for (int i=0;i<numManifolds;i++)
{
btRigidBody* obA = static_cast<btRigidBody*>(contactManifold->getBody0());
btRigidBody* obB = static_cast<btRigidBody*>(contactManifold->getBody1());
// May be there is contact obA and obB
btPersistentManifold* contactManifold = m_dynamicsWorld->getDispatcher()->getManifoldByIndexInternal(i);
int numContacts = contactManifold->getNumContacts();
for (int j=0;j<numContacts;j++)
{
btManifoldPoint& pt = contactManifold->getContactPoint(j);
if (pt.getDistance()<0.f)
{
// One contact point is inside of another object
// But some contacts are ignored
}
}
}
hoặc
Kiểm tra tuyến tính và thay đổi vận tốc góc. (Không rõ liệu có sự tiếp xúc và những gì đối tượng thực hiện thay đổi tốc độ, là nó phản đối hoặc giảm xóc, lực hấp dẫn hoặc một số lĩnh vực có hiệu lực.
Tôi muốn có thông tin liên lạc bao gồm địa chỉ liên lạc xung. tôi nhận thấy rằng một số liên lạc giải quyết trong 1 khung mô phỏng khác có 2 khung hình và xung là hai lần thấp hơn. (Tôi đã nhận nó gỡ lỗi mã.) Tôi sẽ là hoàn hảo để có được 1 thông báo liên lạc với tổng xung. Tổng số:
Không có phương pháp nào tôi liệt kê Một thời gian nó bắn khi quả bóng bay gần mục tiêu và thậm chí không chạm vào nó.
Cách dự kiến để làm điều đó là gì?
Thông tin như vậy có thể được sử dụng để phát âm thanh tác động hoặc bắt đầu một số hoạt ảnh nếu năng lượng liên hệ cao.
pt.getAppliedImpulse() – rraallvv
pt.getAppliedImpulse() - Tôi bỏ lỡ thế này! thêm câu trả lời và tôi sẽ đánh dấu nó như vậy. Cảm ơn bạn – Max