Ledge leo hoạt hình và chuyển động (platformer 2d)


11

Đấu tranh để đưa ra quyết định về việc thực hiện một cơ chế leo lên gờ cho một nền tảng 2d điều khiển vật lý. Cách tốt nhất để làm điều này mà không quá phức tạp là gì?

Cho đến nay tôi hiểu (người có sở thích ở đây không phải là dân chuyên nghiệp) có một vài lựa chọn bao gồm:

  1. Áp dụng lực được kiểm soát vào thân cứng trên trục y cho đến khi vị trí gốc nằm ngay trên vị trí tay sau đó tác dụng đủ lực lên trục x để nhân vật đứng trên bục. Đồng thời bằng cách nào đó đồng bộ hóa điều này với (các) hoạt hình leo trèo.

    Lưu ý : chuyển động ở đây dễ dàng và thậm chí có thể được điều khiển bởi khớp trượt hình lăng trụ nhưng tôi không chắc chắn làm thế nào tôi có thể giữ cho hình ảnh động (cột sống) đồng bộ với chuyển động.

  2. Root chuyển động hình ảnh động ổ đĩa vị trí gốc của nhân vật. Dịch chuyển cơ thể cứng nhắc khi hoàn thành và hy vọng box2d vẫn có thể phản ứng đúng lúc với bất kỳ va chạm nào nếu có bất kỳ vật thể nào rơi xuống từ bầu trời.

    Lưu ý : nghe có vẻ dễ thực sự hơn nhưng không chắc chắn liệu tôi có gặp phải bất kỳ vấn đề nào với thời gian chạy cột sống, box2d hoặc sau đó xuống các nền tảng di chuyển dòng và nền tảng chiều cao khác nhau.

  3. Áp dụng ràng buộc IK theo chương trình trên tay để khóa chúng tại chỗ và tiến hành xoay xương bằng tay hoặc áp dụng các hình động nhỏ (vài phím / khung) đặt sẵn trong khi áp dụng lực cần thiết vào cơ thể cứng nhắc cùng một lúc.

    Lưu ý : có vẻ như điều này sẽ cung cấp quyền kiểm soát tối đa cho người chơi nhưng nghe có vẻ phức tạp đối với tôi khi thực hiện ở cấp độ của mình, không chắc chắn chính xác nơi tôi sẽ bắt đầu.

Đặc biệt cảm ơn vì bất cứ đóng góp nào!

FYI: Đây là một công cụ dựa trên ECS (libgdx + ashley) với box2d. Việc lấy gờ đã được triển khai như một hệ thống riêng biệt, vì vậy chúng ta có thể giả sử ở đây rằng nhân vật đã có khả năng treo trên một gờ có chiều cao bất kỳ.

Câu trả lời:


1

Tôi tin rằng bạn cần nhiều sự lựa chọn thiết kế hơn ở đây trước khi bạn có thể đưa ra một quyết định đúng đắn, cụ thể, điều gì có thể xảy ra với nhân vật trong khi anh ta đang treo / leo?

Vì bạn nói rằng trò chơi là vật lý dựa trên tôi cho rằng bạn có thể có một hòn đá rơi xuống đầu trong khi treo hoặc leo trèo, vì vậy nếu đây là trường hợp tôi tin rằng việc tìm kiếm rootmotion có thể là giải pháp đơn giản nhất, bạn chỉ cần làm động tác leo trèo , trong khi nó leo trèo ở trạng thái treo hơi khác, sự khác biệt duy nhất là bạn không thể bắt đầu hành động leo trèo.

Bây giờ điều này giả sử bạn có toàn bộ tình huống treo trong tầm kiểm soát, nghĩa là nếu trong khi bạn đang treo và bất kỳ tương tác nào xảy ra, nhân vật sẽ phản ứng đúng.

Sau đó, tất cả những gì bạn cần làm là đặt trạng thái của nhân vật trở về trạng thái chờ khi hoạt hình leo núi hoàn tất.


0

bạn chỉ có thể di chuyển biến đổi. lên n số lần cho đến khi chân đứng trên gờ và tạm thời quên vật lý, tôi nghĩ nó sẽ hoạt động tốt, bạn luôn có thể đo khoảng cách giữa các vật rơi và người chơi trong trường hợp va chạm thất bại trong khi va chạm một bản dịch biến đổi. để đảm bảo xảy ra va chạm ..


0

Nếu người chơi bị ép vào một vật có thể leo được thì cho phép lên / xuống để di chuyển nó trên trục Y. Trong trạng thái này, đảm bảo nó không thể di chuyển trên trục X. Khi bạn di chuyển, bạn có thể gọi Animation.Sample trên hoạt hình leo trèo của bạn để đảm bảo điểm trong hoạt hình khớp với khoảng cách leo lên thay vì cố gắng làm hết thời gian.


0

Theo tôi, cách "tốt nhất" sẽ là: Khi bạn phát hiện leo trèo là có thể, hãy tạm thời khóa vị trí của người chơi. Sử dụng hình ảnh động với chuyển động gốc và khóa các điều khiển. Khi hoạt ảnh kết thúc, mở khóa vị trí và điều khiển người chơi.

Tất nhiên nếu bạn làm điều đó một cách liều lĩnh, nó sẽ trông kỳ lạ HOẶC nó sẽ yêu cầu độ chính xác hoàn hảo của pixel. Nhưng bạn có thể tránh nó - cung cấp cho người chơi một số phạm vi mà họ có thể leo lên, và với một lerp nhanh chóng điều chỉnh vị trí đến vị trí hoàn hảo.


0

Người chơi có thể tự do di chuyển theo chiều ngang trong khi họ ở giữa không trung (điều khiển không khí)? Nếu vậy, tôi chỉ cần áp dụng một lực dọc phù hợp để đưa chân người chơi lên trên nền tảng và để người chơi di chuyển theo chiều ngang lên trên nó.

Điều này sẽ giúp người chơi kiểm soát nhân vật nhiều hơn và mở ra nhiều tùy chọn di chuyển hơn - Ví dụ: nếu người chơi (trong khi treo trên gờ đá) muốn nhảy, hãy bắn vào thứ gì đó trên nền tảng, sau đó rơi xuống và lấy lại gờ trong khi tên lửa di chuyển đến mục tiêu của nó để né tránh bất kỳ tên lửa nào mà mục tiêu bắn lại vào người chơi. Một chiến thuật như vậy có thể làm cho một chiến lược chiến đấu ông chủ thú vị.

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.