Thực hiện hệ thống va chạm


7

Chỉ tò mò những gì có thể là một cách tốt để thực hiện một hệ thống va chạm tốt. Là một lớp được kế thừa bởi một lớp Thực thể cơ sở? Hiện tại tôi đang bị mắc kẹt và chỉ có thể sử dụng một vài ý tưởng tốt hơn của tôi.

Bất kỳ trợ giúp được đánh giá cao!

Chỉnh sửa: Xin lỗi, đó là Va chạm 2D nhưng thành thật mà nói, tôi không tìm kiếm các phương pháp va chạm cụ thể. Tôi đang tìm kiếm thêm về các dòng thực hiện. Chỉ tò mò về một số phương pháp phổ biến về cách triển khai các hệ thống va chạm như:

Toàn bộ hệ thống va chạm có phải là lớp riêng không? Điều gì, nếu có, nên được thừa kế?

Đây là một số câu hỏi của tôi. Xin lỗi vì sự nhầm lẫn.


Vui lòng thêm một số thông tin bổ sung về những gì bạn muốn đạt được. Bạn có cần phát hiện va chạm 2D hoặc 3D không? Có bao nhiêu đối tượng sẽ phải được kiểm tra? Bạn cần độ chính xác nào?
sum1stolemyname

Câu trả lời:


5

Mỗi lần tôi hỏi về các hệ thống va chạm, các cuộc thảo luận (trực tuyến) đều diễn ra theo cách này:

  • "Này, làm thế nào tôi nên làm loại va chạm này?"
  • "Bạn nên thử thuật toán này."
  • "Không, thuật toán này sẽ tốt hơn!"
  • "Có lẽ một cái nhìn toàn cầu hơn về hệ thống sẽ giúp ích, như sử dụng thuật toán này."
  • "Chỉ cần lấy cuốn sách Va chạm thời gian thực và im lặng."

Vì vậy, sau vài lần thảo luận như vậy, cuối cùng tôi đã mua cuốn sách: http://realtimecollisiondetection.net/

Nó trình bày tất cả các khía cạnh của chủ đề để thông báo cho bạn đủ để cho phép bạn quyết định phải làm gì cho từng trường hợp.


Cảm ơn bạn đã khai sáng cho tôi. Thành thật mà nói tôi đã tìm thấy nhiều tài nguyên trên các thuật toán khác nhau. Chỉ cần có khối ý tưởng về chính xác cách thực hiện theo cách bán hiệu quả / thực tế. Một lần nữa cám ơn.
hrr4

Không có vấn đề gì, tôi đã trải qua những câu hỏi tương tự hết lần này đến lần khác và bây giờ tôi nhận được cuốn sách này, tôi có một tài liệu tham khảo vững chắc để làm việc ngay lập tức.
Klaim

3

Đây là một câu hỏi về phương pháp thiết kế, vì vậy không có giải pháp tối ưu duy nhất.

Một cách tiếp cận khả thi sẽ là tạo ra một siêu lớp cho các đối tượng có thể va chạm, xác định các hàm để phát hiện va chạm và có tất cả các lớp đối tượng có thể va chạm được kế thừa từ lớp này.

Cách các chức năng này hoạt động phụ thuộc vào các tham số khác, chẳng hạn như loại phát hiện va chạm (hộp giới hạn, vòng tròn giới hạn, đa giác giới hạn, mỗi pixel, ...).


Hrm, cảm ơn bạn đã đầu vào. Phải, từ những gì tôi đã tìm thấy và cho những gì tôi đang cố gắng đạt được (bản sao tiểu hành tinh), tôi đã quyết định chọn hệ thống loại vòng tròn-> AABB. Nhưng một lần nữa, chỉ là tìm kiếm ý tưởng thực hiện. Đánh khối ý tưởng và chỉ cần tiếp cận một chút giúp đỡ :). Cảm ơn!
hrr4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.