Trong trò chơi dựa trên khối 2d của tôi, tôi đang cố gắng thực hiện cấu trúc dữ liệu sẽ lưu trữ các thực thể theo cách có khả năng:
Lựa chọn trực tiếp dựa trên tọa độ.
Lặp lại
Lặp lại giới hạn trong một khu vực
Tôi nghĩ về những giải pháp này:
Đối với 1,3 tôi nghĩ rằng một mảng tọa độ 2 chiều của các thực thể sẽ phù hợp nhưng tôi đã có một mảng tọa độ 2 chiều của các khối và cũng không muốn có một tọa độ khác. Và giải pháp này không phù hợp với 2, sẽ có quá nhiều khoảng trống khi lặp lại mảng và đây là một sự mất hiệu suất.
Giải pháp tiếp theo tôi nghĩ đơn giản là sử dụng một mảng và thêm các thực thể mới chỉ đơn giản bằng mảng [độ dài], đây là hiệu suất khôn ngoan cho 2 nhưng thật khó để thực hiện 1 và 3 (sử dụng vòng lặp for mọi lúc để kiểm tra xem tôi có va chạm với không một thực thể (duh)).
Giải pháp cuối cùng chỉ đơn giản là thêm dữ liệu thực thể vào mảng 2 chiều blockList (đã tồn tại) của tôi, cách này có các ưu và nhược điểm gần giống với giải pháp đầu tiên.
Và luôn có sự thay thế của việc sử dụng các giải pháp thứ nhất và thứ hai cùng nhau bằng cách làm cho chúng tham chiếu đến cùng một đối tượng.
Tôi nên sử dụng một trong những giải pháp nào, vì tất cả chúng đều có ưu và nhược điểm và tôi phải sử dụng ít không gian hơn, vì bản đồ trò chơi không được sửa.