Atölye › Flappy tarzı kuş › 11/30. adım
Kuş yere çakılınca oyun bitmeli; ekranın tepesinden çıkmak da yasak. İkisinde de durum 'over' (bitti) olur ve her şey
donar.
bird.y dairenin merkezi. Kuşun alt kenarı merkezden bir yarıçap aşağıda: bird.y + bird.r. Üst kenarı bir
yarıçap yukarıda: bird.y - bird.r. Zemin canvas'ın en alt çizgisi: canvas.height (600).
```js
function flap() {
if (state === 'over') return
state = 'playing'
bird.vy = FLAP
}
bird.y += bird.vy
const hitGround = bird.y + bird.r >= canvas.height
const hitSky = bird.y - bird.r <= 0
if (hitGround || hitSky) state = 'over'
```const hitGround = bird.y + bird.r >= canvas.height → >= "büyük veya eşit mi?". Alt kenar zemine değdi mi? Böyle
bir sorunun cevabı sayı değil, doğru (true) ya da yanlış (false). Cevaba bir ad veriyoruz: hitGround
(yere çarptı). Kod böyle daha kolay okunur.const hitSky = bird.y - bird.r <= 0 → <= "küçük veya eşit mi?". Üst kenar tavana değdi mi?if (hitGround || hitSky) state = 'over' → || "veya": biri doğruysa oyun biter.'over' olunca update'in ilk satırı hemen çıkar: kuş donar.flap içinde if (state === 'over') return → oyun bittiyse çırpış hiçbir şey yapmaz. (Yeniden başlatmayı ileride
ekleyeceğiz.)flap içinde en üste if (state === 'over') return satırını yaz.update içinde bird.y += bird.vy satırının altına bir boş satır bırak ve üç yeni satırı yaz.Beceriler: Çarpışma tespiti, Oyun durumları
← İlk çırpışı bekle Oyuncuya söyle →