Jawaban:
Ketika seorang pemain bertabrakan dengan dinding saat melompat (atau, jika Anda suka, jatuh), nyalakan bendera selama 100 milidetik atau lebih yang menyebabkan upaya melompat untuk berhasil memulai lompatan (mengabaikan semua pemeriksaan kontak permukaan) dengan cukup banyak kecepatan pada sumbu X ke arah yang jauh dari dinding. Ingatlah untuk mematikan bendera lebih awal jika lompatan sebenarnya dimulai.
Jujur saya baru saja melakukan pemeriksaan titik. Begitu:
if (falling AND left_key_pressed AND !point_free(x-1,y))
doWallJump
Anda mungkin ingin mengubah y untuk mengatakan y + sprite_width / 2 (atau - tergantung pada sistem koordinat Anda) sehingga ia memeriksa ke kiri tengah sprite Anda, bukan bagian atas (atau bawah). Ini adalah bagaimana N mengimplementasikan pemeriksaan dinding untuk melompat dinding (paragraf terakhir) .
Setelah itu Anda harus memutuskan seberapa ketat Anda ingin dinding Anda melompat. Jika kecepatan vertikal lompatan Anda melampaui horizontal sebelum pemain dapat mencapai dinding yang sama lagi, Anda tidak akan dapat melompat ke dinding yang sama dan secara bertahap akan jatuh kembali ke bawah (seperti dalam game Mario dengan lompat dinding ). Jika Anda membiarkan horisontal menjadi cukup lemah bagi pemain untuk kembali ke dinding, ia akan dapat naik ke atas dinding (seperti pada Meat Boy).
Pendekatan lain yang tidak disebutkan adalah Super Metroid. Dalam gim itu saat Anda melawan dinding, jika Anda bergerak dari dinding itu, sebuah animasi "pindah dinding" yang sangat singkat akan dimainkan. Jika Anda melompat selama animasi itu, Anda akan melakukan lompatan dinding. (Super Metroid juga memungkinkan pemain untuk memanjat dinding menggunakan lompatan dinding, tetapi membutuhkan sedikit keterampilan (pada kenyataannya segala sesuatu tentang melompat dinding di Super Metroid membutuhkan sedikit keterampilan ...).)