Tôi đang viết công cụ isometric trong c ++. Tôi quyết định thực hiện một cách tiếp cận thực tế hơn và làm cho các bức tường chiếm không gian giữa hai viên gạch chứ không phải toàn bộ một viên gạch, như trong hình bên dưới (giống như trong The Sims).
Vấn đề của tôi là tôi không biết làm thế nào để lưu trữ dữ liệu liên quan đến bản đồ ô vuông trong một cái gì đó không phải là lưới. Trong tình huống này, tôi đoán tôi sẽ cần làm cho nó trở nên thân thiện với A *, do đó sẽ có các nút và cạnh giữa các ô không được chia cho các bức tường. Đây là một hình ảnh khác cho thấy những gì tôi muốn đạt được:
Vì vậy, đây là câu hỏi:
Tôi nên như thế nào:
- lưu trữ toàn bộ bản đồ, cả gạch và tường
- tối ưu hóa nó để kết xuất
- sử dụng nó cho A * và các thuật toán khác khá đơn giản để thực hiện trên một lưới đơn giản nhưng bây giờ sử dụng các bức tường (các cạnh) để xác định khả năng hiển thị, va chạm, v.v.?