Atölye › Doodle Jump Tarzı Tırmanış › 10/24. adım
Bir platform zıplayanı yalnız düşerken yakalar ve yalnız ayaklar bu karede platformun üstünü geçtiyse. Böylece aşağıdan platformun içinden geçip yukarı çıkabilir, düşerken üstüne konabilirsin; tıpkı gerçek oyundaki gibi.
Bunun için ayakların hareketten önceki ve sonraki yerini karşılaştırıyoruz.
```js
const oldBottom = player.y + player.h
player.vy += GRAVITY
player.y += player.vy
const bottom = player.y + player.h
// Platforms only catch you on the way down, when your feet cross their top in this frame.
if (player.vy > 0) {
for (const p of platforms) {
const over = player.x + player.w - 8 > p.x && player.x + 8 < p.x + p.w
if (over && oldBottom <= p.y && bottom >= p.y) {
player.y = p.y - player.h
player.vy = JUMP
break
}
}
}
// For now the floor still bounces you back up.
```const oldBottom = player.y + player.h → ayakların hareketten önceki yeri; bottom → sonraki yeri.if (player.vy > 0) → yalnız düşerken (vy artı).over → yatayda platformun üstünde mi? Kenarlardan 8'er piksel sayılmaz; köşesiyle değmek yetmesin.oldBottom <= p.y && bottom >= p.y → ayaklar önce platformun üstündeydi, şimdi hizasında ya da altında: bu
karede üstünü geçtiler.player.y = p.y - player.h → platformun tam üstüne koy; player.vy = JUMP → sek.break → bir platform yeter, diğerlerine bakma.update içinde player.vy += GRAVITY satırının üstüne oldBottom satırını, player.y += player.vy satırının
altına bottom satırını yaz.// For now the floor still bounces you back up. yap.Beceriler: Çarpışma tespiti
← Platformlar Takip eden kamera →