Có một điều khiến tôi bối rối, và đó là cách thực hiện bước nhảy 'giả tạo' trong một platformer. Nếu bạn không biết tôi đang nói về điều gì, thì hãy nghĩ đến những bước nhảy của Mario, Kirby và Trích dẫn từ Cave Story. Họ có đặc điểm gì chung? Chà, chiều cao của bước nhảy của bạn được xác định bởi thời gian bạn nhấn nút nhảy.
Biết rằng các 'xung lực' của các nhân vật này được xây dựng không phải trước khi họ nhảy, như trong vật lý thực tế, mà là trong khi ở giữa không trung - nghĩa là, bạn rất có thể nhấc ngón tay lên giữa chiều cao tối đa và nó sẽ dừng lại, ngay cả khi giải thích giữa nó và điểm dừng hoàn toàn; đó là lý do tại sao bạn có thể chỉ cần chạm vào một bước nhảy và giữ nó để nhảy xa -, tôi bị mê hoặc bởi cách họ giữ các phản lực của họ như những vòng cung.
Triển khai hiện tại của tôi hoạt động như sau:
Trong khi nhấn nút nhảy, trọng lực bị tắt và tọa độ Y của hình đại diện bị giảm đi bởi giá trị không đổi của trọng lực. Ví dụ: nếu mọi thứ giảm ở đơn vị Z trên mỗi đánh dấu, nó sẽ tăng đơn vị Z trên mỗi đánh dấu.
Khi nút được giải phóng hoặc đạt đến giới hạn, hình đại diện sẽ giải phóng một lượng sẽ khiến nó bao phủ các đơn vị X cho đến khi tốc độ của nó đạt đến 0; một khi nó làm, nó tăng tốc cho đến khi tốc độ của nó khớp với trọng lực - theo ví dụ, tôi có thể nói nó tăng tốc từ 0 đến Z đơn vị / đánh dấu trong khi vẫn bao phủ các đơn vị X.
Tuy nhiên, việc triển khai này làm cho các bước nhảy quá chéo và trừ khi tốc độ của avatar nhanh hơn trọng lực, điều này sẽ khiến nó đi quá nhanh trong dự án hiện tại của tôi (nó di chuyển với tốc độ khoảng 4 pixel mỗi tick và trọng lực là 10 pixel mỗi tick, tại tốc độ khung hình 40FPS), nó cũng làm cho nó thẳng đứng hơn so với chiều ngang. Những người quen thuộc với platformer sẽ nhận thấy rằng bước nhảy của nhân vật hầu như luôn cho phép họ nhảy xa hơn ngay cả khi họ không nhanh như lực hấp dẫn của trò chơi, và khi nó không, nếu không chơi đúng, sẽ tự chứng minh là như vậy rất phản trực giác. Tôi biết điều này bởi vì tôi có thể chứng thực rằng việc thực hiện của tôi rất khó chịu.
Có ai từng cố gắng ở cơ học tương tự, và thậm chí có thể thành công? Tôi muốn biết những gì đằng sau loại nhảy platformer này. Nếu bạn chưa từng có bất kỳ kinh nghiệm nào với việc này trước đây và muốn thực hiện nó, xin vui lòng, đừng cố gắng sửa chữa hoặc nâng cao việc thực hiện được giải thích của tôi, trừ khi tôi đang đi đúng hướng - hãy thử giải quyết từ vết trầy. Tôi không quan tâm nếu bạn sử dụng trọng lực, vật lý hoặc không có gì, miễn là nó cho thấy các xung giả này hoạt động như thế nào, nó thực hiện công việc.
Ngoài ra, tôi muốn bản trình bày của nó để tránh mã hóa theo ngôn ngữ cụ thể; như, chia sẻ cho chúng tôi một ví dụ về C ++ hoặc Delphi ... Nhiều như tôi đang sử dụng khung XNA cho dự án của mình và không bận tâm đến công cụ C #, tôi không đủ kiên nhẫn để đọc mã của người khác và tôi một số nhà phát triển trò chơi của các ngôn ngữ khác sẽ quan tâm đến những gì chúng tôi đạt được ở đây, vì vậy đừng bận tâm đến mã giả.
Cảm ơn bạn trước.