Vì vậy, tôi đang tạo một trò chơi 2d, từ trên xuống, dựa trên sprite và hiện tại tôi đang làm việc trên bản đồ (tốt, một trình chỉnh sửa bản đồ vào lúc này, nhưng về cơ bản là nó sẽ tạo ra các bản đồ của tôi, về cơ bản là giống nhau Điều).
Kịch bản
Vì vậy, tôi đang suy nghĩ về hiệu quả và tạo ra một bản đồ thành từng mảnh. Trong mỗi tác phẩm, tôi dự định sẽ có 'lớp'. Về cơ bản, tôi có kế hoạch đưa nó xuống cấp độ 'dưới anh hùng' và cấp độ 'trên anh hùng', với anh hùng được hiển thị ở giữa rõ ràng. Cũng có khả năng sẽ có một lớp 'ngang tầm với anh hùng', nhưng tôi chưa hoàn toàn ở đó. Thậm chí không lo lắng về các sự kiện hoặc tương tác. Chỉ cần tìm kiếm một anh hùng trên màn hình.
Bây giờ để di chuyển, rõ ràng tôi cần phải biết gạch nào có thể được di chuyển và theo hướng nào. Kế hoạch của tôi tại thời điểm này là mỗi ô nhận 8 bit (4 'có thể nhập theo hướng' bit, 4 'có thể rời theo hướng'). Điều này sẽ cho phép tôi hạn chế chuyển động và thậm chí cho phép chuyển động một chiều.
Tiến thoái lưỡng nan
Điều này làm việc tuyệt vời cho rất nhiều kịch bản. Nó sẽ cho phép tôi lưu trữ bản đồ trong 3 lớp, một chuỗi và cho phép tôi linh hoạt trong tương lai. Tuy nhiên, tôi không thể tạo bản đồ mà bản thân chúng có các lớp. Một ví dụ điển hình là cây cầu nơi người dùng có thể đi dưới hoặc qua cây cầu mà không được phép di chuyển không hợp lệ. Tôi không thể tạo một nền tảng và cho phép di chuyển bên dưới. Đây là những điều tôi muốn có thể đưa vào trò chơi của mình.
Ý kiến của tôi
Về lý thuyết, tôi có thể cho phép nhiều lớp anh hùng và sau đó cho phép nhiều bộ lớp 'bên dưới' và 'bên trên' (hoặc lớp bánh sandwich). Nhưng điều này làm phức tạp hệ thống của tôi và khiến cho việc di chuyển giữa các bản đồ trở nên khó khăn (Nếu anh hùng ở lớp thứ ba ở rìa bản đồ, nhưng điều đó tương ứng với lớp thứ hai trên bản đồ khác, làm cách nào tôi có thể cho phép hoặc không cho phép di chuyển).
Câu hỏi của tôi
Có cách nào tốt hơn để quản lý nhiều bản đồ với nhiều cấp độ như thế này trong đó cấp độ người dùng có thể được 'kết nối' ở các cấp độ khác nhau trên các bản đồ khác nhau không?
Hoặc thậm chí ...
Tôi đang làm điều này một cách khó khăn? Có cách nào chuẩn hơn để xử lý các bản đồ lát gạch 2d từ trên xuống mà tôi không biết?
Những điều cần lưu ý hoặc có thể hữu ích
- Điều này sẽ được thực hiện trong Javascript (được chuyển xung quanh trong JSON)
- Trạng thái sẽ cần được chuyển nhanh chóng, do đó, một id-map và x / y / direction phải đủ để mang lại cho tôi giá trị 'có thể di chuyển' boolean
- Bản đồ sẽ không có kích thước tiêu chuẩn (mặc dù chúng sẽ nằm trong một số ô nhất định)
- Tạo một công cụ chỉnh sửa để tôi có thể nhờ người khác giúp đỡ, vì vậy thứ gì đó tôi có thể tạo trong công cụ sẽ hữu ích
- Các địa điểm 'Dịch chuyển tức thời' có thể sẽ cần tồn tại để đi vào việc xây dựng bản đồ và đến và từ các bộ bản đồ khác nhau (không nhất thiết phải được kết nối), nhưng chưa được tạo ra (hiện tại có các sự kiện).