Thiết kế cuộn màn hình theo phong cách Mega Man


25

Sê-ri Mega Man cổ điển của NES sử dụng một kỹ thuật cuộn rất cụ thể mà tôi đang gặp khó khăn trong việc thực hiện. Về cơ bản, cấp độ được chia thành "màn hình" có cùng kích thước. Một số màn hình di chuyển trơn tru vào nhau, tạo ra ảo ảnh của một lĩnh vực chơi rộng hơn. Một số màn hình ngăn camera cuộn cho đến khi trình phát đến mép màn hình, tại thời điểm chuyển tiếp xảy ra và màn hình tiếp theo được hiển thị. Cũng có thể một màn hình có nhiều hơn một lần chuyển đổi, ví dụ: nó có một bậc thang đi lên một màn hình, nhưng bạn cũng có thể đi về phía trước tới một màn hình khác.

Làm thế nào những chuyển đổi màn hình có thể được mô hình hóa?

Sơ đồ chuyển đổi màn hình Mega Man

  • Màn hình 0 là màn hình bắt đầu, nơi người chơi bắt đầu.
  • Màn hình 0-3 được cuộn theo chiều ngang và xuất hiện cho người chơi dưới dạng một trường chơi liên tục.
  • Vì có sự chuyển đổi giữa Màn hình 3 và các màn hình 4 và 5 lân cận, nên máy ảnh sẽ không vượt qua các cạnh phải hoặc trên của Màn hình 3 trừ khi người chơi di chuyển đến cạnh tương ứng đó và "đẩy" qua màn hình tiếp theo.
  • Khi người chơi di chuyển đến một trong các cạnh chuyển tiếp, đầu vào của người dùng sẽ bị vô hiệu hóa trong giây lát và camera sẽ chuyển sang khu vực mới, sau đó đầu vào của người dùng được khôi phục.

  • Màn hình màu xanh lam (Màn hình 5) đã vô hiệu hóa cuộn ngang để chỉ có thể chuyển đổi theo chiều dọc.

  • Màn hình màu xanh lá cây (Màn hình 6) có chuyển đổi dọc trở lại Màn hình 5 nhưng cũng cho phép cuộn ngang trơn tru vào Màn hình 7.

Chỉnh sửa : Việc thực hiện chuyển đổi về mặt phòng dẫn tôi đến điều này:

Sơ đồ thi công cấu trúc phòng

Các rãnh nhỏ có mũi tên là các khu vực có thể xảy ra quá trình chuyển đổi. Mỗi khu vực có một "hướng" và nằm ngay bên ngoài khu vực có thể nhìn thấy của căn phòng. Ngay khi người chơi đến một khu vực, quá trình chuyển đổi sẽ được bắt đầu.


1
hành vi này cũng có mặt trong các trò chơi 2D trong loạt game Metroid.
Sparr

Vâng, về cơ bản là giống nhau. Sự khác biệt là IIRC Metroid cho phép cuộn trơn dọc trong một số phòng / trục, trong khi Mega Man không bao giờ có cuộn trơn dọc; luôn luôn có một sự chuyển đổi
Zack The Human

Tôi đã nghe điều này được gọi là 'sàng lọc flick'.
Blecki

Câu trả lời:


21

Nghe có vẻ như những gì bạn cần là khái niệm về phòng trái ngược với màn hình . Màn hình 1-3 sẽ là một phòng, ví dụ: Phòng của bạn có thể có kích thước và hình dạng bất kỳ, hoặc thậm chí bị giới hạn ở kích thước bội số của màn hình .

Máy ảnh của bạn sẽ theo dõi người chơi qua một phòng nhất định, cho đến khi người chơi đến quá gần đường viền (một nửa chiều rộng màn hình). Khi người chơi di chuyển qua biên giới và vào một phòng khác, bạn thực hiện hình ảnh chuyển tiếp.

Mỗi phòng sẽ có một tập hợp các điểm truy cập, được ánh xạ tới các điểm truy cập của một phòng khác - tạo ra các điểm chuyển tiếp.


Cám ơn vì sự gợi ý. Đây là những gì ban đầu tôi muốn làm nhưng tôi gặp phải một rào cản tinh thần khi cố gắng đối phó với sự chuyển đổi. Ví dụ, có một căn phòng dài với một lối vào từ trên cùng bên trái của căn phòng, và một lối ra ở trên cùng của đầu bên phải. Tôi cho rằng cách để đối phó với điều này sẽ là có các vùng nhỏ được xác định có thể kích hoạt quá trình chuyển đổi, hmm?
Zack The Human

Xa hơn một chút: khái niệm "phòng" là những gì tôi hiện có trong trò chơi của mình. Các phòng có thể có kích thước tùy ý, nhưng tôi chưa xác định cách chuyển từ phòng này sang phòng khác.
Zack The Human

1
@Zack: Camera theo dõi Người chơi xung quanh. Các giới hạn Camera không bao giờ được chồng lên một phòng bên ngoài phòng mà Người chơi đang ở (nghĩa là nếu cạnh phải của khung nhìn nằm sát cạnh phải của phòng này, camera không thể di chuyển sang phải). Nếu Người chơi đi qua tường phòng vào phòng kế bên, hãy nhanh chóng theo dõi Camera cho đến khi an toàn trong Phòng mới (bạn chỉ phải lo lắng về việc lên / xuống / trái / phải trong cấu trúc của mình cho chuyển động này). Tùy chọn, nếu người chơi đi lên tường phòng, hãy điều khiển tự động và buộc họ đi về phía trước để hoàn toàn ở trong phòng mới.
doppelgreener

1
@Zack: Chỉnh sửa câu hỏi của bạn có vẻ tương quan với những gì tôi đã nghĩ. Vị trí của người chơi chỉ có thể di chuyển ra khỏi một căn phòng nhất định ở những vị trí chuyển tiếp đó (giữa y1 và y2 trên một bức tường thẳng đứng, hoặc x1 và x2 trên một bức tường nằm ngang), và ngay khi đó, bạn đặt vị trí của nó trong phòng tiếp theo - vì vậy tránh một vòng lặp "qua lại" - và thực hiện chuyển đổi hình ảnh.
TreDubZedd

1
Bạn cũng có thể xem xét một "đường viền" xung quanh mỗi phòng, thường là khu vực không thể phát (ngoại trừ các khu vực chuyển tiếp). Bạn có thể thiết kế đồ họa các phòng của mình sao cho đường viền không thể phát luôn chứa đồ họa "tường", nhưng các vùng chuyển tiếp bị bỏ ngỏ, giống như phần còn lại của căn phòng. Bạn có thể giả mạo "chồng chéo" chuyển tiếp bằng cách đợi người chơi hoàn toàn vượt qua biên giới (có thể phát) và trong phòng tiếp theo, đảm bảo vị trí mới hoàn toàn không giao nhau với đường viền.
TreDubZedd

-8

Khái niệm về các vùng cuộn mịn lớn hơn được tạo thành từ các khối có kích thước màn hình là một yếu tố của những hạn chế tài nguyên nghiêm trọng trên các bảng điều khiển cổ điển, nơi có thể đạt được hiệu suất bằng cách giữ dữ liệu trong các khối có kích thước cụ thể (chẳng hạn như một trang bộ nhớ). Có rất ít lý do để sử dụng một hệ thống như vậy trong một trò chơi hiện đại.


7
Tôi hiểu rằng các nhà phát triển ban đầu phải triển khai cuộn theo cách này để tải gạch, họa tiết, v.v. Tôi không cần triển khai hệ thống dựa trên màn hình được mô tả trong câu hỏi của tôi, điều tôi thực sự muốn là mô phỏng máy ảnh và / hoặc di chuyển cuộn.
Zack The Human

4
-1 - Việc phân chia khu vực chơi thành các phần không liên tục có thể không còn phù hợp để tải nữa, nhưng nó vẫn tạo ra cảm giác đặc biệt về vị trí cho người chơi và giúp họ lập bản đồ khu vực về mặt tinh thần.

@Joe làm thế nào có liên quan đến câu trả lời của tôi? Tôi đặc biệt và trực tiếp giải quyết các khối có kích thước nhiều màn hình. Tôi không nói gì về việc các khối không liên tục hay không.
Sparr

Tôi muốn cho bạn biết rằng tôi đã không đánh giá thấp câu trả lời của bạn, nhưng tôi thực sự không nghĩ rằng nó trả lời câu hỏi của tôi: 'Làm thế nào những chuyển đổi màn hình này có thể được mô hình hóa?'.
Zack The Human

@ Xin cảm ơn. Nếu nó trở nên tiêu cực hơn nhiều, tôi sẽ xóa nó, nhưng nếu nó vẫn ở mức -3 thì tôi sẽ rời bỏ nó vì tôi nghĩ nó phù hợp ngay cả khi không phải là câu trả lời trực tiếp
Sparr
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.