Şu anda, arazi için fayanslı bir platformum var (grafikler Cave Story'den ödünç alındı). Oyun sıfırdan XNA kullanılarak yazılmıştır, bu yüzden mevcut bir motoru veya fizik motorunu kullanmıyorum.
Karo çarpışmaları hemen hemen bu cevapta açıklandığı gibi açıklanmıştır (dikdörtgenler ve daireler için basit SAT ile) ve her şey iyi çalışır.
Oyuncu düşerken / zıplarken duvara çarptığında hariç. Bu durumda, bir kiremit yakalarlar ve aslında orada olmayan bir zemine veya tavana çarptıklarını düşünmeye başlarlar.
Bu ekran görüntüsünde oynatıcı sağa hareket ediyor ve aşağıya doğru düşüyor. Hareketten sonra çarpışmalar kontrol edilir - ve ilk olarak, oyuncu karakterinin döşemeyle 3. yerden çarpıştığı ortaya çıkar ve yukarı doğru itilir. İkincisi, yanındaki kiremitle çarpıştığı bulundu ve yanlara doğru itti - sonuç, oyuncu karakterinin yere düştüğünü ve düşmediğini düşünüyor ve kiremitin üzerine koştuğu sürece 'yakaladığını'. .
Bunun yerine fayansları yukarıdan aşağıya doğru tanımlayarak çözebilirim, bu da onu sorunsuz bir şekilde düşmesine neden olur, ancak tersi durumda olur ve duvara doğru yukarı doğru atlarken orada olmayan bir tavana çarpacaktır.
Oyuncu karakterinin gerektiği gibi duvar boyunca düşebilmesi için bunu çözmeye nasıl yaklaşmalıyım?