Saya sedang membangun pelari tak terbatas 2D. Dalam permainan, karakter melompat dari pilar ke pilar dan pilar dihasilkan secara acak. Saya punya ini berfungsi. Tetapi bagaimana cara menentukan apakah karakter gagal melompat ke pilar dan telah jatuh ke celah antara pilar? Pilar berbentuk segi empat biasa.
12
Jawaban:
Tambahkan wilayah persegi panjang di bagian bawah level, lebih rendah dari ketinggian minimum yang diijinkan dari sebuah platform. Jika pemain telah memotong wilayah ini, mereka terjatuh dari platform.
sumber
if (playerPos.x < minHeight)
?Jika permainan Anda hanya bergulir secara horizontal, Anda dapat memeriksa apakah posisi vertikal karakter berada di bawah tepi bawah panggung.
Jika permainan Anda juga bergulir secara vertikal (mungkin ke atas), Anda dapat memeriksa apakah pemain telah jatuh di bawah tepi bawah tampilan (yaitu area panggung yang ada di layar, atau dalam fokus kamera).
Secara umum, kondisi kematian adalah jika karakter gagal untuk tetap "di kamera". Dengan mengontrol pergerakan kamera Anda, Anda akan dapat menyetel gameplay Anda. Misalnya, jika dalam tahap pengguliran vertikal Anda hanya membiarkan kamera "karet gelang" sedikit ke bawah, sementara memungkinkan gerakan ke atas penuh, Anda akan menghukum jatuh dalam, offscreen.
sumber
Atau untuk memeriksa koordinat vertikal , Anda bisa memeriksa kecepatan vertikal. Jika karakter jatuh ke bawah lebih cepat dari beberapa ambang batas, menyimpulkan mereka sudah mati (bahkan jika ada yang beberapa platform yang cukup rendah masih mencapai, dampaknya akan fatal).
Tentu saja, ini hanya berfungsi jika gim Anda menerapkan fisika jatuh bebas dasar dengan benar, yaitu kecepatan turun sebenarnya meningkat selama musim gugur, seperti yang terjadi pada kenyataannya (hingga kecepatan terminal).
sumber
Jika Anda memiliki tinggi pilar, Anda dapat menemukan yang terendah ada, dan membandingkannya dengan posisi pemain vertikal. Jika dia di bawah pilar terendah, tidak ada kemungkinan dia bisa kembali. Anda dapat membatasi pemeriksaan ini hanya untuk pilar di belakang dan di depan pemain.
Contoh: Kami memiliki 3 pilar, dengan ketinggian [10, 20, 40]. Pemain yang melompat ada di pilar dengan ketinggian 40, dia melompat ke depan ke 20. Dia merasakan jarak antara 40 dan 20, dia sekarang di ketinggian 15. Itu berarti dia merasa. Untuk pemeriksaan yang kurang ketat, tunggu sampai dia di bawah 10.
sumber
Catat berapa lama karakter telah jatuh. (yaitu berapa lama mereka telah bergerak "turun"). Begitu mereka telah jatuh lebih dari satu layar penuh waktu, mereka secara definisi telah jatuh dari panggung, ya?
sumber