Tôi biết hiệu quả là chìa khóa trong lập trình trò chơi và tôi đã có một số kinh nghiệm với việc hiển thị "bản đồ" trước đó nhưng có lẽ không phải là cách tốt nhất.
Đối với trò chơi TopDown 2D: (chỉ cần hiển thị họa tiết / gạch của thế giới, không có gì khác)
Giả sử, bạn có bản đồ 1000x1000 (gạch hoặc bất cứ thứ gì). Nếu ô không nằm trong tầm nhìn của máy ảnh, nó không nên được hiển thị - đơn giản vậy thôi. Không cần phải hiển thị một lát sẽ không được nhìn thấy. Nhưng vì bạn có 1000x1000 đối tượng trong bản đồ của mình, hoặc có lẽ ít hơn bạn có thể không muốn lặp qua tất cả các ô 1000 * 1000 chỉ để xem liệu chúng có giả sử được hiển thị hay không.
Câu hỏi: Cách tốt nhất để thực hiện hiệu quả này là gì? Vì vậy, nó "nhanh / nhanh hơn" có thể xác định gạch nào được giả sử sẽ được hiển thị?
Ngoài ra, tôi không xây dựng trò chơi của mình xung quanh các ô được hiển thị bằng SpriteBatch để không có hình chữ nhật, các hình có thể có kích thước khác nhau và có nhiều điểm, giả sử một vật cong 10 điểm và kết cấu bên trong hình đó;
Câu hỏi: Làm thế nào để bạn xác định xem loại đối tượng này có "bên trong" Chế độ xem của máy ảnh không?
Thật dễ dàng với hình chữ nhật 48x48, chỉ cần xem nó X + Width hay Y + height nằm trong chế độ xem của máy ảnh. Khác nhau với nhiều điểm.
Nói một cách đơn giản, làm thế nào để quản lý mã và dữ liệu một cách hiệu quả để không phải chạy qua / lặp qua hàng triệu đối tượng cùng một lúc.