Atölye › Puzzle Bobble Tarzı Balon Atıcı › 19/31. adım
Patlayan balonlar bir anda yok olmasın: her biri hafifçe zıplayıp yer çekimiyle ekrandan düşsün. Çok küçük bir fizik ama oyuna can katar.
```js
let falling // popped and dropped bubbles on their way out: { x, y, vy, r, color }
falling = []
const p = cellPos(r, c)
falling.push({ x: p.x, y: p.y, vy: -2, r: R, color: grid[r][c] })
for (const f of falling) {
f.vy += 0.4
f.y += f.vy
}
falling = falling.filter((f) => f.y - f.r < canvas.height)
for (const f of falling) drawBubble(f.x, f.y, f.color, f.r)
```falling → düşmekte olan balonların listesi.remove içinde: hücre boşaltılmadan önce balonun bir kopyası listeye girer: yeri, rengi ve vy: -2 (yukarı
doğru küçük bir hız, zıplama).f.vy += 0.4 → yer çekimi: her karede aşağı doğru hız biraz artar. Önce yavaşlar, durur, sonra hızlanarak
düşer.f.y += f.vy → hıza göre hareket.falling.filter((f) => f.y - f.r < canvas.height) → ekranın altından tamamen çıkanları listeden at.let shot ... satırının altına let falling ...; reset içinde shot = null satırının altına falling = [] yaz.remove içindeki döngünün en üstüne iki satırı yaz (grid[r][c] = -1 satırından önce).update fonksiyonunun en başına yer çekimi döngüsünü ve filter satırını yaz (if (!shot) return'den önce).draw içinde ızgarayı çizen iç içe döngünün altına düşenleri çizen satırı yaz.Beceriler: Hız ve yerçekimi
← Üç tane olunca patla Asılı kalmayanlar düşsün →