Tôi có một cơ thể có khối lượng là 10, và mỗi chu kỳ của chương trình tôi áp dụng một lực 100 cho nó bằng cách sử dụng cách tiếp cận đơn giản;Mũ vận tốc cơ thể Box2D?
Vector2 force = new Vector2(0, 1) * 100;
bod.ApplyForce(force, bod.GetWorldCenter());
Nó hoạt động tốt, tăng tốc và tất cả điều đó, nhưng khi nó đạt vận tốc 10 (100/10 tôi giả định), nó sẽ không phát triển nhanh hơn. Tôi không phải là một nhà vật lý bằng bất kỳ phương tiện nào, nhưng tôi nhớ rằng cơ thể nên liên tục tăng tốc, giống như nó sẽ chịu lực hấp dẫn. Giới hạn tốc độ này có phải là kết quả của cách thức Box2D thực hiện mọi thứ không, hoặc tôi có đang làm hỏng thứ gì đó không? Ngoài ra, tôi phải làm gì để sửa nó.
LƯU Ý: tôi nhận được tốc độ hạn chế tương tự nếu tôi sử dụng ApplyLinearImpulse thay vì ApplyForce
Cập nhật: Tôi cũng nhận thức được giới hạn tốc độ tối đa tổng thể áp đặt bởi Box2D (trong b2Settings.h). Trong ví dụ của tôi, mục đang được đề cập đang di chuyển dưới giới hạn này khi thay đổi lực ứng dụng, có thể là 1000 hoặc 10000 sẽ luôn đi xung quanh vận tốc cực đại (lực/khối lượng).
Đây không phải là câu trả lời đúng nhưng có thể bạn nên làm việc với quy mô tổng thể nhỏ hơn. Như thế này bạn có thể áp dụng lực lượng nhỏ hơn và sau đó sẽ không bị kẹt bởi một số giới hạn lực lượng. Box2d thường không thích khi bạn làm việc trên cơ sở quy mô quá lớn. – phemios
quy mô là tốt. một đối tượng có khối lượng là 10kg và tôi đang áp dụng một lực 100N cho nó. Tốc độ giới hạn gió lên tới 10 m/s, đó là cách thức trong phạm vi quy mô cho Box2D. –
Bạn đã kiểm tra giảm chấn tuyến tính chưa? – Davos555