Tôi đang sử dụng mousejoint để kéo các vật trong hộp2d, nhưng nó gây ra trì hoãn quán tính.Box2d: mousejoint mà không bị trì hoãn quán tính
Hiện nó có tồn tại bất kỳ cách nào để kéo cơ thể ngay lập tức không?
Tôi đang sử dụng mousejoint để kéo các vật trong hộp2d, nhưng nó gây ra trì hoãn quán tính.Box2d: mousejoint mà không bị trì hoãn quán tính
Hiện nó có tồn tại bất kỳ cách nào để kéo cơ thể ngay lập tức không?
Giải pháp là điều chỉnh các thuộc tính frequencyHz và dampingRatio trong b2MouseJointDef của bạn.
Ví dụ:
b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);
Tôi đang cố gắng triển khai trò chơi kiểu pong trong thư viện Processing/Box2d và tôi dự đoán có cùng một vấn đề. Một điều cần lưu ý là duy trì một đối tượng ẩn trong thế giới Box2d, một đối tượng hoạt động với các khớp theo cách thông thường, và sau đó vẽ một đối tượng ảo theo sau chuột mà không bị trễ khung. Điều này có thể đủ để đánh lừa người dùng.
Mặt khác, Box2d không phải là một mô phỏng vật lý nghiêm ngặt và cho phép một số sự tha thứ trong các đối tượng trùng nhau, vì vậy nó thực sự có vẻ như cần phải có một cách để làm điều này.
Xem câu trả lời của tôi cho giải pháp! – Ricibald
Cảm ơn! Hoạt động hoàn hảo. Tôi đã tìm thấy một ví dụ về cách sử dụng mousejoint trong Xử lý tại đây: http://processing.org/discourse/yabb2/YaBB.pl?num=1213404906/30 và sửa đổi nó với đề xuất của bạn. –
Tôi không thể bỏ phiếu cho câu trả lời của riêng mình! Hãy bình chọn nó để câu trả lời xuất hiện trên đầu! – Ricibald
ngôn ngữ chương trình? – antpaw
phiên bản gốc của box2d: C++ – Ricibald