Làm thế nào để một trò chơi 2D như Zelda xử lý nhân vật đứng sau các tòa nhà nơi chỉ có một phần của anh ta được hiển thị?


28

Tôi đang cố gắng phát triển một trò chơi kiểu Zelda đơn giản. Tôi thấy chủ đề này rất hữu ích

Làm thế nào LoZ: Một liên kết đến quá khứ xử lý các va chạm gạch phụ?

mà tôi đang sử dụng làm tài liệu tham khảo để phát triển cơ chế phát hiện va chạm của mình. Tuy nhiên, có điều gì đó tôi đã không hiểu. Khi Link ở phía sau các tòa nhà, chỉ một phần của anh ta được hiển thị. Bất cứ ai có thể xin vui lòng giúp tôi hiểu làm thế nào hiệu ứng này có thể đạt được? Không phải là phần xây dựng của nền?


Tôi thích nghĩ về phong cách render như có một lớp đất (cỏ, sàn gạch, v.v.), một lớp đối tượng (chậu, kẻ thù, bờ biển, liên kết, v.v.), và một lớp bầu trời (ngọn mái, chậu nhấc, ngọn cây , v.v.) Logic cho việc di chuyển mọi thứ giữa các lớp có thể hơi kỳ lạ trong ví dụ về chậu, nhưng đó lại là vấn đề khác.
Benjamin Danger Johnson

Câu trả lời:


32

Các trò chơi lát gạch 2D thường có nhiều lớp hơn biểu hiện ở các lớp khác nhau - một số kết xuất trong nền khác ở phía trên trình phát.

Đó là một phần của mái nhà ở phía trên người chơi và đó là lý do tại sao người chơi có thể đi đằng sau tòa nhà đó.

Dưới đây là ví dụ hình ảnh từ trò chơi của tôi để giải thích rõ hơn: nhập mô tả hình ảnh ở đây


Vì vậy, bản thân tòa nhà có thể là một phần của nền, nhưng mái nhà là một phần của một lớp khác được vẽ trên đỉnh của lớp với các họa tiết?
Tinadm

2
@Tinadm không nhất thiết phải là toàn bộ mái nhà, nó chỉ có thể là phần mái sẽ vẽ trên đầu của người chơi được hiển thị sau mọi thứ khác.
Tetrad

7
+1 cho đồ họa tuyệt vời. Thực sự giúp người học trực quan.
UnderscoreZero

1
Tôi khá chắc chắn rằng các SNPG JRPG cũ đã sử dụng kỹ thuật tương tự. FF2, FF5, v.v ... Kỹ thuật vẫn còn hiệu lực.
Hatoru Hansou

1
Bạn có thể thấy điều này khá tốt với các trình giả lập, ví dụ ZSNES, cho phép bạn tắt và bật các lớp riêng lẻ theo cách thủ công.
Tobias Kienzler

5

Mặc dù câu trả lời của Blodyaveng bao gồm cách nó được thực hiện nhiều nhất, đây là một khả năng khác cho phép chuyển đổi phối cảnh dễ dàng (ví dụ: bốn hoặc tám hướng khác nhau hoặc một số mức độ cao của máy ảnh):

Xem xét chế độ xem từ trên xuống của bản đồ của bạn, ví dụ:

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

Ở đâu, nói, Xđánh dấu một trụ cột cao. Đối với mỗi đối tượng, bạn lưu trữ hình ảnh của tất cả các phối cảnh có thể (hoặc sử dụng cùng một ...), có thể tùy ý nhiều ô xếp cao. Bây giờ khi vẽ, chỉ cần bắt đầu với cột hoặc hàng ở phía sau trong phối cảnh hiện tại, ví dụ hàng 1 nếu nhìn từ phía nam. Sau đó, vẽ hàng / cột nhiều thứ hai vào mặt sau và cứ thế. Bằng cách này, khi một cái gì đó cao hơn một ô (được kéo dài theo quan điểm hiện tại), nó sẽ chỉ đơn giản là vượt quá những gì nằm phía sau.

(Xin lỗi vì thiếu hình ảnh đẹp, tôi không giỏi về đồ họa ứng dụng ...)


Lưu ý cách bạn có thể dễ dàng thay đổi độ cao camera theo cách này bằng cách kéo dài họa tiết đối tượng
Tobias Kienzler

1

Bạn nên có một biến số cho độ sâu và có các hình ảnh có độ sâu lớn nhất được vẽ trước, sau đó các hình ảnh khác có độ sâu thấp nhất. Và độ sâu của mỗi đối tượng phải bằng âm của tọa độ y của nó.

Depth=-y

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.