Atölye › Sonsuz Koşucu › 18/19. adım
Yerdeyken aşağı oku basılı tutmak koşucuyu kısaltsın (44'ten 26'ya): kuşun altından geçecek kadar. Eğilmişken zıplanamasın.
Dikkat edilecek nokta: boy değişince kutunun üstü değil ayakları yerinde kalmalı; yoksa koşucu havada kısalırdı.
```js
const DUCK_H = 26
// Duck only on the ground; keep the feet in place when the height changes.
const h = keys.ArrowDown && onGround() ? DUCK_H : STAND_H
runner.y += runner.h - h
runner.h = h
if (onGround() && runner.h === STAND_H) runner.vy = JUMP
```keys.ArrowDown && onGround() ? DUCK_H : STAND_H → aşağı ok basılı ve yerdeyse eğilme boyu, değilse ayakta boyu.runner.y += runner.h - h → boy ne kadar küçüldüyse üst kenarı o kadar aşağı indir (büyüyünce yukarı çıkar).
Böylece y + h, yani ayaklar, aynı yerde kalır.runner.h = h → yeni boy.jump içinde && runner.h === STAND_H → eğilmişken zıplama yok.const STAND_H = 44 satırının altına DUCK_H satırını yaz.update içinde zemin bloğunun hemen altına yorumu ve üç eğilme satırını yaz (boş satırdan önce).jump içindeki koşula && runner.h === STAND_H ekle.Beceriler: Klavye ve fare girdisi, Çarpışma tespiti
← Hangi tuşlar basılı? Kendin yap: zıplama tamponu →