Vật lý ốp lát sử dụng Farseer


9

Tôi đang gặp vấn đề với Công cụ Vật lý Farseer, trong môi trường lát gạch, đối tượng của tôi đôi khi sẽ tương tác với các góc của các đối tượng khác, ngay cả khi chúng thẳng hàng hoàn hảo.

Vật lý ốp lát sử dụng Farseer

Tôi đã đọc về những người đề nghị bạn tính toán và tạo một đối tượng lớn hơn, sử dụng Marching Squares hoặc một cái gì đó tương tự. Tuy nhiên, đây không phải là một lựa chọn, vì tôi muốn mỗi ô có các phẩm chất vật lý khác nhau, như ma sát và phục hồi khác nhau.

Câu hỏi của tôi là, chính xác những gì gây ra nó, nó là vấn đề chính xác nổi hay cái gì khác? Và có cách nào để sửa nó, mà không phá vỡ toàn bộ động cơ vật lý?


Tôi tự hỏi nếu bạn chỉ có thể mở rộng các hộp va chạm thêm một pixel, để chúng chồng lên nhau một chút. Nó có thể nhìn thấy bề mặt như có thể kết nối nhiều hơn.
Doug.McFarlane

@Doug: Tôi vừa thử nghiệm điều đó, và nó không tạo ra sự khác biệt nào.
William Mariager

Là gạch mặt đất cơ thể tĩnh?
bummzack

@bummzack: Vâng, đúng vậy.
William Mariager

Tôi gặp vấn đề chính xác như nhau. Tôi nhận được hiệu ứng "nảy" khi đối tượng có thể di chuyển của tôi là một hình chữ nhật hoặc hình tròn. Tôi cũng không thể chuyển đổi nhiều hình vuông thành một hình chữ nhật lớn vì tôi muốn người chơi có khả năng "loại bỏ" các ô riêng lẻ trong một số tình huống.

Câu trả lời:


5

Farseer sử dụng một bộ giải lặp, do đó, khi bánh xe của bạn bắt đầu va chạm với một hình chữ nhật khác với vận tốc cao, đôi khi bạn sẽ thấy những va chạm vì nó là "sự liên kết hoàn hảo" với chúng ta, không phải là mô phỏng vật lý, với những lần lặp như thế này không bao giờ là "pixel-perfect".

Bạn sẽ phải chuyển đổi hình chữ nhật thành hình dạng Edge / Loop và sau đó mô hình hóa các phẩm chất vật lý khác nhau bằng các cách hack như tạo giới hạn gạch nhân tạo và sau đó thay đổi các thuộc tính khi nhân vật đi vào hộp giới hạn, nhưng không phải chất lượng vật lý nào cũng có thể được mô phỏng theo cách đó.

Sớm muộn gì bạn cũng sẽ viết ra vật lý dựa trên gạch của riêng bạn thay vì Farseer. Nếu trò chơi của bạn không có nhiều câu đố vật lý phức tạp, sẽ đơn giản hơn khi từ bỏ Farseer hoàn toàn và cuộn vật lý dựa trên gạch của riêng bạn.


Tôi thực sự đã bắt đầu mã hóa công cụ vật lý của riêng mình, đặc biệt cho công cụ ốp lát này, vì dường như không có giải pháp thanh lịch nào.
William Mariager

Tôi quyết định đánh dấu câu trả lời này, vì dường như không có bất kỳ giải pháp đơn giản nào và bạn sẽ tốt hơn khi mã hóa giải pháp của riêng mình. Hoặc chấp nhận rằng bạn không thể có vật lý khác nhau và sử dụng Marching Squares để tạo ra các cơ thể lớn hơn.
William Mariager

0

bạn có thể tối ưu hóa hình dạng va chạm của mình, cảnh này có thể được thực hiện chỉ với bốn hình chữ nhật.

bạn có thể tham gia các hộp tương quan để làm cho một cái lớn hơn.

video này cho thấy nó http://www.youtube.com/watch?v=eyhGckHgkkE

Khi thêm hộp, bạn có thể thấy một hình chữ nhật màu xanh nhạt với hình dạng được tối ưu hóa.


1
Như tôi đã nói trong đoạn thứ ba, biến một nhóm đối tượng thành một đối tượng lớn hơn không phải là một lựa chọn, vì tôi sẽ mất các thuộc tính riêng lẻ.
William Mariager

bạn cũng có thể nhóm chúng theo tính chất phisycal của chúng. Tôi nghĩ rằng không có nhiều khối vật lý khác nhau cùng nhau.
Blau

Nhóm chúng theo phẩm chất vật lý sẽ cho tôi cùng một vấn đề nếu địa hình thay đổi nhiều trên một đoạn đường. Nó có thể là bất thường, nhưng dù sao đó là những gì tôi cần.
William Mariager

0

Hmm ... Tôi nghi ngờ nó có thể có liên quan đến vòng tròn của bạn chứ không phải gạch bên dưới nó. Hãy thử làm mặt đất bằng một thân tàu duy nhất và xem bạn có nhận được kết quả tương tự không. Nếu không, đó là gạch như bạn nghi ngờ. Nếu vậy, vòng tròn của bạn không tròn như bạn nghĩ.


Tôi đã kiểm tra điều đó. Sử dụng một hình chữ nhật lớn không có vấn đề.
William Mariager

k, Gạch là vấn đề sau đó
John McDonald
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.