Saya mengalami masalah dengan Farseer Physics Engine, di mana dalam lingkungan ubin, objek saya kadang-kadang akan berinteraksi dengan sudut-sudut benda lain, bahkan jika mereka sejajar sempurna.
Saya telah membaca tentang orang-orang yang menyarankan Anda menghitung dan membuat satu objek yang lebih besar, menggunakan Marching Squares atau yang serupa. Namun ini bukan pilihan, karena saya ingin setiap ubin memiliki kualitas fisik yang berbeda, seperti gesekan dan restitusi yang berbeda.
Pertanyaan saya adalah, apa sebenarnya penyebabnya, apakah ini masalah presisi mengambang atau sesuatu yang lain? Dan adakah cara untuk memperbaikinya, tanpa merusak seluruh mesin fisika?
xna
physics
farseer-physics-engine
William Mariager
sumber
sumber
Jawaban:
Farseer menggunakan pemecah iteratif, jadi ketika roda Anda mulai bertabrakan dengan persegi panjang lain dengan kecepatan tinggi, dari waktu ke waktu Anda akan melihat tonjolan karena itu adalah "penyelarasan sempurna" bagi kami, bukan dengan simulasi fisika, dengan iterasi hal-hal seperti ini akan jangan pernah menjadi "pixel-perfect".
Anda harus mengubah segi empat menjadi bentuk Edge / Loop dan kemudian memodelkan kualitas fisik yang berbeda dengan peretasan seperti membuat batas ubin buatan dan kemudian mengubah properti ketika karakter memasuki kotak lompatan, tetapi tidak semua kualitas fisik dapat ditiru dengan cara itu.
Cepat atau lambat Anda akan berakhir menulis fisika berbasis ubin Anda sendiri, bukan Farseer. Jika gim Anda tidak memiliki banyak teka-teki fisika yang rumit, akan lebih mudah untuk meninggalkan Farseer sepenuhnya dan melempar fisika berbasis ubin Anda sendiri.
sumber
Anda dapat mengoptimalkan bentuk tabrakan, adegan ini dapat dilakukan hanya dengan empat persegi panjang.
Anda dapat bergabung dengan kotak korelatif untuk menjadikannya lebih besar.
video ini menunjukkannya http://www.youtube.com/watch?v=eyhGckHgkkE
ketika menambahkan kotak, Anda dapat melihat persegi panjang biru muda dengan bentuk yang dioptimalkan.
sumber
Hmm ... Saya menduga itu ada hubungannya dengan lingkaran Anda dan bukan ubin di bawahnya. Cobalah membuat tanah menggunakan lambung tunggal dan lihat apakah Anda mendapatkan hasil yang sama. Jika tidak, itu ubin seperti yang Anda curigai. Jika demikian, lingkaran Anda tidak bulat seperti yang Anda kira.
sumber