Saya memiliki permainan Platform 2D, di mana pemain Selalu berlari ke kanan, tetapi medannya tidak Selalu horizontal. Contoh:
Saya menerapkan sistem tabrakan kotak-terikat yang hanya memeriksa persimpangan dengan kotak pemain dan blok lainnya, untuk menghentikan pemain dari berlari jika Anda menemukan blok besar, sehingga Anda harus melompat, tetapi ketika saya meletakkan tangga, saya ingin dia berjalan lancar seperti dia berada di tanah horisontal. Dengan sistem tabrakan Anda harus melompat tangga untuk melewatinya!
Saya berpikir tentang membuat garis di antara ujung tangga, dan memaksakan gerakan pemain pada garis itu ... Bagaimana menurut Anda? Apakah ada yang lebih pintar untuk dilakukan?
sumber
Sebagian besar metode yang saya temui telah dinyatakan di atas - tetapi masih ada satu lagi yang belum disebutkan. Ketika pemain menghadapi rintangan vertikal yang cukup pendek (katakanlah, 1/3 hight mereka), cukup letakkan mereka di atas. Minecraft dan mesin Sumber misalnya mengambil pendekatan ini dalam situasi seperti itu. Selain itu, metode ini memungkinkan Anda untuk tetap menggunakan AABB murni untuk semua fisika sambil tidak menempatkan pemain melalui rasa sakit karena harus terus-menerus melompat ke atas.
sumber
Saat ini saya sedang mengerjakan bagian mesin yang serupa, dan cara saya menangani tangga / lereng adalah dengan menghitung piksel transparan dalam tekstur ramp saya dan mengimbangi objek pemain dengan jumlah yang ditemukan.
Ini serupa dengan gagasan peta ketinggian yang dirinci dalam artikel ini: http://info.sonicretro.org/SPG:Solid_Tiles#Slopes_And_Curves
Saya membayangkan itulah yang benar-benar ingin Anda lakukan, dan Anda dapat memilih untuk memainkan animasi berbeda yang diputar sesuai dengan kenaikan tangga.
Ada juga gambaran umum yang baik tentang konsep lereng yang berbeda dalam artikel ini: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/
sumber