Tôi đang cố gắng sử dụng quadtrees để phát hiện va chạm trong trò chơi tôi đang tạo, nhưng tôi không chắc chắn cách xử lý các đối tượng có thể di chuyển giữa các quad khác nhau? Cách duy nhất tôi có thể nghĩ về nó là bằng cách xóa toàn bộ cây mỗi khung, và sau đó thêm mọi thứ vào trong đó, nhưng điều đó có vẻ như có thể nhận được cpu chuyên sâu và không hiệu quả lắm. Bạn có kiểm tra từng đối tượng mỗi khung để xem liệu nó đã di chuyển ra ngoài ranh giới của quad hiện tại của nó chưa, và nếu vậy thì loại bỏ nó và readd nó? Điều đó một lần nữa có vẻ như nó có thể là khá kém hiệu quả bởi vì bạn sẽ thực hiện kiểm tra va chạm trên mọi đối tượng chuyển động mỗi khung hình.Làm thế nào để bạn xử lý các đối tượng di chuyển giữa các quad khi sử dụng quadtrees?
Ngoài ra, liên quan đến quadtrees nhưng không liên quan đến các đối tượng di chuyển xung quanh trong chúng, làm thế nào để bạn xử lý nhiều đối tượng trong cùng một quad? Hầu hết các trang web mà tôi đã đọc về chúng trên nói rằng bạn chỉ nên có một, có thể hai, các đối tượng trong một quad, và nếu bạn nhận được nhiều hơn thế thì sau đó đẩy chúng xuống trong cây. Nếu bạn có một tình huống như this thì sao? Bạn có ba vòng tròn và tất cả chúng đều ở các cạnh của cấp dưới chúng nên chúng không thể đi xa hơn nữa, nhưng có ba vòng tròn cùng cấp, mà mọi người nói bạn không nên có.
Đối với những gì bạn sử dụng cây quad? Nếu bạn muốn sử dụng chúng trong phát hiện va chạm, thuật toán quét và quét sẽ tốt hơn cho việc này. –