Tôi đang sử dụng Box2d cho trò chơi xếp hạng. "Mặt đất" là một loạt các ô, trong đó mỗi ô là một phần thân tĩnh với một hình dạng cảm biến. Tôi có thể làm cho ma sát có hiệu lực cho điều này, mặc dù các đối tượng không thực sự "va chạm" với mặt đất? Nếu Box2d không cho phép tôi làm điều này, tôi xem xét cố gắng tự thực hiện bằng cách phát hiện lực nào hiện đang di chuyển đối tượng và áp dụng một lực đối diện với nó, nhưng tôi không chắc chắn cách phát hiện ra lực lượng.Ma sát trong Box2d
Trả lời
ApplyImpulse()
thay vì ApplyForce()
hoạt động tốt hơn nhiều.
Cách khác để thực hiện việc này là đặt linearDamping
trên cơ thể của bạn. Bạn có thể đặt tùy chọn này khác nhau tùy thuộc vào ô mà đối tượng của bạn đang bật.
Ma sát được hướng vào vận tốc của cơ thể, bất kể các lực khác.
Nếu thiết lập giảm xóc tuyến tính không đủ hoặc dựa vào thuộc tính của b2Body là không phù hợp, bạn có thể dễ dàng tính toán lực ma sát phi tuyến và gọi ApplyLinearImpulse() hoặc ApplyLinearForce() mỗi khung.
Query vận tốc với b2Body.GetLinearVelocity(), quy mô (phi tuyến) kết quả như mong muốn để có được lực lượng, và đảo ngược dấu hiệu của cả hai thành phần.
Nếu bạn quyết định dừng cơ thể (khi nó đủ chậm để dính), SetLinearVelocity() thực hiện thủ thuật mà không cần tính toán.
- 1. Lệnh chống ma sát với đường ống
- 2. Ma sát mô phỏng cứng nhắc
- 3. Threading Box2D với pthreads
- 4. Python OpenCV Box2D
- 5. Tốc độ giảm dần trong không trọng lực box2d thế giới
- 6. Giám sát tất cả các thuộc tính đối tượng JavaScript (getters và setters ma thuật)
- 7. Ma trận của Ma trận trong Perl
- 8. Box2d nhiều đồ đạc và định vị
- 9. Mũ vận tốc cơ thể Box2D?
- 10. Cách tạo ra một thế giới bao quanh trong Box2D
- 11. Nhược điểm của các cơ quan ngủ trong Box2D
- 12. Mô phỏng khả năng chống nước trong Box2D
- 13. Android GDX Box2D Hình dạng tam giác
- 14. Quan sát/Quan sát Android
- 15. Box2d: Tốc độ tuyến tính tối đa có thể?
- 16. Giám sát ZooKeeper với Giám sát
- 17. Quan sát tự trong Cocoa
- 18. Số quan sát trong NSMutableArray
- 19. Ma trận chiếu ma trận trong Xna/OpenGL - 3D
- 20. Giám sát
- 21. Cách thêm Box2d vào Dự án Xcode/Cocos2d hiện có
- 22. Tổng các hàng trong data.frame hoặc ma trận
- 23. Box2d: mousejoint mà không bị trì hoãn quán tính
- 24. Cách nhanh để xem số lượng quan sát phổ biến cho các mục nhập ma trận tương quan Python Pandas
- 25. Áp dụng Box2D vật lý để UIView vs CALayer
- 26. ma trận xoay trong Eigen
- 27. Ma trận xuất trong r
- 28. Quan sát KVO và NSNotificationTrung tâm quan sát
- 29. Xcode: Cocos2d: Không thể tạo ra thế giới với Box2D
- 30. Libgdx Box2D thiết lập hình ảnh cho một cơ thể
Tại sao 'ApplyImpulse()' hoạt động tốt hơn 'ApplyForce()'? –