Atölye › Candy Crush Tarzı Üçlü Eşleştirme › 20/29. adım
Şimdi mücevherleri indiriyoruz: 'falling' evresinde her karede her drop 8 piksel küçülsün, 0'a inene kadar.
Mücevher de o kadar aşağıda çizileceği için yerine kayarak iner.
Hepsi yere inmeden yeni eşleşmelere bakmamalıyız; yoksa oyuncu havadaki mücevherlerin patladığını görürdü. Bu yüzden "hâlâ hareket eden var mı?" diye soruyoruz.
```js
const FALL = 8 // pixels a gem falls per frame
if (phase === 'falling') {
let moving = false
for (let r = 0; r < N; r++) {
for (let c = 0; c < N; c++) {
drop[r][c] = Math.max(0, drop[r][c] - FALL)
if (drop[r][c] > 0) moving = true
}
}
if (moving) return
```const FALL = 8 → bir karede düşülen piksel.let moving = false → "hareket eden yok" diye başla.drop[r][c] = Math.max(0, drop[r][c] - FALL) → 8 azalt; Math.max(0, ...) iki sayıdan büyüğünü seçtiği için
0'ın altına inmez.if (drop[r][c] > 0) moving = true → hâlâ havadaysa, hareket eden var.if (moving) return → biri bile havadaysa bu karelik iş bitti; alttaki zincirleme kontrolüne henüz gelme.moving false kalır ve eski satırlar çalışır: yeni eşleşme varsa yeniden sil, yoksa 'idle'.COLORS satırının altına FALL satırını yaz.update içinde if (phase === 'falling') { satırının altına, // Landed... yorumunun üstüne koddaki satırları
yaz.Beceriler: Oyun döngüsü, Oyun durumları
← Mücevher nereden geldi Üstün altından çık →