Tôi đang cố gắng thiết kế một thuật toán phát hiện va chạm cho một khách hàng Minecraft tùy chỉnh mà tôi đang thực hiện. Về cơ bản, toàn bộ thế giới được tạo thành từ các hình khối, và người chơi (hoặc máy ảnh) cần phải có khả năng đứng vững và di chuyển chống lại những khối này. Kết quả tôi muốn được minh họa trong hình ảnh này: Phát hiện va chạm bằng cách trượt trên mặt phẳng trong XNA
Dòng màu xanh lá cây là vector chuyển động của người chơi. Khi người chơi đang chải lên mặt phẳng của một trong các hình khối, tôi muốn vectơ thay đổi thành hình vuông góc với mặt phẳng. Tuy nhiên, vectơ nên giữ tất cả vận tốc của nó theo hướng của máy bay, nhưng mất tất cả vận tốc về phía mặt phẳng.
Tôi hy vọng tôi đã làm rõ câu hỏi của mình. Cách tốt nhất và hiệu quả nhất để thực hiện một hệ thống phát hiện va chạm như thế này là gì? Ngoài ra, một hệ thống như thế này có cho phép một thành phần trọng lực đơn giản không?
EDIT: Quên đề cập đến, các hình khối được lưu trữ trong mảng ba chiều, [x, y, z].
Tôi thích câu hỏi này. Tôi khuyên bạn nên đăng lên gamedev.stackexchange.com. Tôi tưởng tượng đây là một vấn đề phổ biến trong phát triển trò chơi. –
@BigDave - Ồ, tôi không biết có một trang web đặc biệt để phát triển trò chơi. Stack Exchange thực sự đang phát triển. – Bevin