Atölye › Mario Tarzı Platform › 17/37. adım
Bir kenara koş ve tam ucunda zıpla. Çoğu zaman oyuncu kenardan bir iki kare önce çıkmış olur ve oyun "havadasın" deyip zıplamaz. Oyuncuya göre oyun onu duymamıştır.
Çözümün eğlenceli bir adı var: coyote time (çakal süresi). Çizgi filmdeki çakal uçurumdan koşup çıkar ve ancak aşağı baktığında düşer. Biz de bir sayaç tutacağız: yerdeyken dolu (6), yerden ayrılınca her karede bir azalır. Bu adımda sayacı kuruyoruz; zıplamada bir sonraki adımda kullanacağız.
```js
const COYOTE = 6 // frames you can still jump after running off a ledge
let coyote
coyote = 0
coyote = player.grounded ? COYOTE : Math.max(0, coyote - 1)
```const COYOTE = 6 → yerden ayrıldıktan sonra zıplamaya izin verilecek kare sayısı. 6 kare saniyenin onda biri:
oyuncu fark etmez ama "bastım ama zıplamadı!" anları kaybolur.let coyote → sayaç; loadLevel'ın sonunda coyote = 0.coyote = player.grounded ? COYOTE : Math.max(0, coyote - 1) → yerdeyse 6'ya doldur; havadaysa bir azalt
ama Math.max(0, ...) ile 0'ın altına inme.CUT satırının altına COYOTE yaz.const keys = {} satırının üstüne let coyote yaz.loadLevel içinde forEach bloğunu kapatan }) satırının altına coyote = 0 yaz.updatePlayer'ın sonunda moveY(player) satırının altına coyote satırını yaz. Çalıştır.Beceriler: Oyun durumları
← Kısa zıplamalar Coyote time →