Làm thế nào để tôi xử lý các đối tượng trò chơi với hai độ sâu?


8

dưới cùng của đối tượng dưới người chơi, trên cùng của người chơi

Tôi muốn có thể làm những gì bạn nhìn thấy trong hình, nhưng với một bức tường duy nhất. Người chơi sẽ có thể đi bộ ở hai bên của cùng một đối tượng . Đó là, cùng một bức tường ở dưới anh hùng khi tôi đi xuống từ nó, và nó ở trên anh hùng nếu tôi đến từ phía trên nó.

Nó giống như hai độ sâu trong cùng một bức tường, vì vậy nó không chỉ là vấn đề vẽ nó trước hay sau. Tôi có thể cắt đối tượng làm hai, nhưng đó sẽ là giải pháp dễ dàng (và có thể tính toán tốn kém). Làm thế nào tôi nên làm điều này?


3
Chia đôi đối tượng có vẻ là cách tự nhiên nhất để làm điều đó. Phần trên nằm phía sau nhân vật, và phần dưới nằm giữa người chơi và nhân vật. Vẫn không tính toán đắt tiền, bạn chỉ cần đảm bảo cả hai phần không rời xa nhau.
Fabinout

Các bạn rất có thể sẽ phải làm như vậy, nhưng còn ý tưởng nào khác không?
Xkynar

Câu trả lời:


8

Dưới đây là ba cách để làm điều đó. Cái nào sẽ phù hợp tùy thuộc vào loại trò chơi nào bạn đang làm.

  1. Như người dùng Fabinout đã nhận xét: Phần Chia tách đối tượng thành hai người Phần trên nằm phía sau nhân vật và phần dưới nằm giữa người chơi và nhân vật. Nếu bạn đang thực hiện một trò chơi dựa trên gạch cứng nhắc (các đường dẫn được hiển thị là hai đường dẫn duy nhất có thể ở gần tường), đây có thể là một cách tốt để làm điều đó. Lưu ý rằng để làm việc này, khoảng cách giữa các đường dẫn trên và dưới ít nhất phải bằng chiều cao của ký tự.

    Một nhược điểm của phương pháp này là nó chỉ giúp với các trường hợp như trường hợp cụ thể này; nó không phải là một chiến lược chung để sắp xếp các sprite.

  2. Vẽ tất cả các họa tiết - cả người chơi và cảnh vật - từ trên xuống dưới theo thứ tự các vị trí trên mặt đất của họ (căn cứ của bức tường, chân người chơi). Điều này sẽ tự động làm cho bức tường được hiển thị ở phía bên phải, và là một chiến lược phổ biến cho các trò chơi theo phong cách của isometric isometric và và 2D 2D RPG.

    Một ưu điểm khác của điều này là nhìn chung có vẻ tốt ngay cả khi các vật thể đi qua nhau - ví dụ: các ký tự không chặn chuyển động của người khác; đi bộ qua một cánh đồng cỏ cao. Nhược điểm là bạn cần xác định thứ tự bản vẽ một cách hiệu quả (ví dụ: sắp xếp các họa tiết của bạn hoặc có một mảng gạch 2D biết các họa tiết nào trong chúng) và nó trở nên phức tạp khi bạn có các đối tượng không bắt nguồn từ trực quan cùng mặt bằng.

  3. Có một lớp phía trước và một lớp phía sau, nơi mà nhân vật của bạn chiếm giữ cái này hoặc cái kia (và bức tường được vẽ sau lưng nhưng trước mặt trước). Tùy thuộc vào cách bạn tiếp cận bức tường, nhân vật được chuyển sang lớp trước hoặc sau theo vùng kích hoạt. Đây là cách trò chơi Sonic the Hedgehog xử lý những thứ như vòng lặp.

    Ưu điểm là về cơ bản bạn có thể có hai mặt phẳng 2D độc lập để xây dựng các yếu tố cấp độ của mình. Tuy nhiên, điều này thích hợp hơn cho một trò chơi khi chuyển động thẳng đứng nhảy lên, trong khi từ hình dạng đồ họa của bạn, trò chơi của bạn dường như là một chuyển động dọc trên màn hình đang di chuyển trước / sau trên mặt đất và còn nhiều hơn nữa hơn hai vị trí khác nhau trong chiều đó.


Sử dụng các lớp như # 3 là bao nhiêu, nếu không phải hầu hết các mánh khóe cuộn bên của bàn giao tiếp cũ hoạt động.
Patrick Hughes

1

Vẽ các đối tượng theo thứ tự của Ygiá trị, vì vậy các đối tượng "xa hơn" (cao hơn trên màn hình) được vẽ trước / bên dưới các đối tượng "gần hơn". Thật đơn giản.

Tổng quát hơn, chỉ cần cung cấp cho các đối tượng một giá trị độ sâu (có thể được ngầm định dựa trên Yhoặc được đặt rõ ràng, tùy thuộc vào trò chơi và nhu cầu) và hiển thị theo thứ tự đó.

Đây là "thuật toán của họa sĩ" tại nơi làm việc.

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.