Cấu trúc dữ liệu (hoặc thuật toán) để tra cứu thực thể dựa trên khoảng cách nhanh


8

Ví dụ: trò chơi của bạn có 100 kẻ thù (trên các đội khác nhau) chạy xung quanh và AI của chúng muốn kiểm tra các thực thể gần đó để xem nó nên tấn công. Cách nhanh chóng để tổ chức các thực thể đó để mỗi kẻ thù không phải tính khoảng cách giữa nó và tất cả các thực thể khác là gì?

Nói tóm lại, cách nhanh chóng để một thực thể AI trả lời câu hỏi "Ai ở gần tôi?"


thử sử dụng cây bốn lá
Ali1S232

Câu trả lời:


8

Bạn muốn có một chỉ số không gian như quadtree (2D) hoặc octree (3D).


1
@FxIII Tôi không chắc chắn tôi làm theo tất cả những gì bạn đang nói về. Các cơ sở dữ liệu cây không gian này được thiết kế đặc biệt để trả lời câu hỏi của người đăng, và được hiểu và sử dụng tốt.
Sẽ

5

Giải pháp đơn giản nhất là lưới điện . Đặt một lưới 2D trên cấp độ của bạn. Mỗi ô trong lưới duy trì một tập hợp các thực thể hiện đang chiếm giữ nó. Khi các thực thể di chuyển, đưa chúng ra khỏi ô mà chúng sẽ rời đi và thêm chúng vào cái mà chúng nhập vào.

Sau đó, bạn có thể tìm thấy các thực thể gần đó chỉ bằng cách kiểm tra các ô gần đó. Một góc phần tư tinh chỉnh điều này bằng cách phân chia đệ quy lưới, nhưng đôi khi một mặt phẳng là đủ, đặc biệt nếu kích thước mức của bạn là cố định và tương đối nhỏ.

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.