Làm cách nào để xác định vùng va chạm phức tạp trên bản đồ ô vuông?


13

Như nhiều người khuyên dùng, tôi đang sử dụng trình chỉnh sửa bản đồ Tiled để tạo bản đồ cho trò chơi của mình và điều đó thật tuyệt vời vì khung libgdx cũng cung cấp API cho bản đồ từ Tiled.

Tôi hiểu rằng tôi có thể xác định các ô có thể va chạm hoặc không có trong trình chỉnh sửa bản đồ để tôi có thể xử lý mọi xung đột trong mã của mình. Nhưng tôi hiện đang ở trong một tình huống mà tôi cần phải chia một viên gạch thành một khu vực có thể va chạm và không thể va chạm. Theo cách thủ công, tôi nghĩ rằng tôi có thể xác định các điểm và đường giới hạn của hai khu vực và lập trình đối phó với nó. Nhưng đó là rất nhiều công việc tốn thời gian.

Vì vậy, tôi đã googled rất nhiều và tìm thấy trình soạn thảo cơ thể vật lý này. Đây có vẻ như là một công cụ tuyệt vời để tự động hóa quá trình tôi đã đề cập ở trên. Tuy nhiên, hệ thống hoạt động với từng hình ảnh được giải nén và tôi không chắc nó sẽ hoạt động ngay cả khi tôi giải nén hình ảnh cho hoạt động của nó.

Tôi tự hỏi nếu có cách nào tốt hơn để làm toàn bộ quá trình xác định khu vực va chạm này. Bất kỳ đề nghị sẽ được nhiều đánh giá cao.

Câu trả lời:


22

Như thường lệ, tôi sẽ chỉ ném một vài ý tưởng vào bàn. Chắc chắn có một số cách bạn có thể tiếp cận vấn đề này. Tôi sẽ mô tả ba cách tôi quản lý để nhớ và tùy bạn quyết định phương pháp nào (nếu có) phù hợp với dự án của bạn.

Ý tưởng 1: Các mẫu có thể lặp lại trong gạch của bạn

Hệ thống của bạn có cần phải đủ linh hoạt để hỗ trợ bất kỳ khu vực va chạm có thể tưởng tượng được không, hoặc bạn có thể chia nó thành một tập hợp hữu hạn các hình dạng gạch mà bạn có thể xây dựng và coi chúng là trường hợp đặc biệt không? Đây là một cặp tài nguyên để đọc về ý tưởng này:

Ý tưởng 2: Bỏ qua các tilemap

Có, bỏ qua hoàn toàn bản đồ và lưu trữ một đại diện đa giác khác nhau của khu vực va chạm của bạn. Sau đó, phủ lớp hình học này lên trên bản đồ dựa trên ô xếp của bạn và xử lý các va chạm với nó. Nếu bạn không cần bất kỳ vật lý nào, hãy kiểm tra tài nguyên sau:

Mặt khác, tôi nghĩ rằng bạn có thể có thể sử dụng công cụ mà bạn liên kết đến.

Ý tưởng 3: Phát hiện va chạm hoàn hảo Pixel

Sử dụng các va chạm hoàn hảo pixel và sử dụng mặt nạ riêng hoặc chỉ kênh alpha trong các ô của bạn để mã hóa các vùng va chạm biến đổi của bạn. Để có cảm hứng, hãy xem hướng dẫn sau:

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.