Atölye › Puzzle Bobble Tarzı Balon Atıcı › 4/31. adım

Izgarayı çiz

Ne yapıyoruz

Izgaradaki bir hücrenin ekrandaki yerini bir fonksiyon hesaplayacak: cellPos (hücrenin yeri). Bütün geometri bu tek fonksiyonda duracak; bu, ileride çok işimize yarayacak.

Şimdilik en basit dizilişi kullanıyoruz: her balon bir çap (40 piksel) sağda, her satır bir çap aşağıda. Sonra draw bütün hücreleri gezip dolu olanları çizecek. Üstte skor için koyu bir şerit bırakıyoruz. Test balonunun işi bitti.

```js
const TOP = 30 // room for the score

const cellPos = (r, c) => ({ x: R + c * 2 * R, y: TOP + R + r * 2 * R })

  ctx.fillStyle = '#312e81'
  ctx.fillRect(0, 0, canvas.width, TOP)

  for (let r = 0; r < ROWS; r++) {
    for (let c = 0; c < COLS; c++) {
      if (grid[r][c] < 0) continue
      const p = cellPos(r, c)
      drawBubble(p.x, p.y, grid[r][c])
    }
  }
```

Ne işe yarıyor

Sıra sende

  1. const ROWS = 14 satırının altına TOP yaz.
  2. let grid ... satırının altına bir boş satır bırak ve cellPos satırını yaz.
  3. draw içinde test balonu satırını sil; yerine şeridi ve iki döngüyü yaz (şeritten sonra bir boş satır).
  4. Çalıştır: üstte beş sıra renkli balon görmelisin.

Beceriler: Canvas üzerine çizim, Döngüler

Tüm adımlar

  1. Gece göğü
  2. Bir balon
  3. Hücrelerden bir ızgara
  4. Izgarayı çiz
  5. İç içe oturan balonlar
  6. Atıcı
  7. Yukarı nişan al
  8. Oklarla çevir
  9. İşaretçiyle nişan al
  10. Ateş!
  11. Uç
  12. Duvarlardan sek
  13. Bir şeye değiyor mu?
  14. Izgaraya otur
  15. Daha küçük adımlar
  16. Altı komşu
  17. Taşan boya (flood fill)
  18. Üç tane olunca patla
  19. Düşen balonlar
  20. Asılı kalmayanlar düşsün
  21. Skoru göster
  22. Yalnız işe yarayan renkler
  23. Atışları say
  24. Tavan iniyor
  25. Kazan ya da kaybet
  26. Tehlike çizgisi
  27. Bitiş mesajı
  28. Yeniden oyna
  29. En iyi skor
  30. Noktalı kılavuz
  31. Kendin yap: balonları değiştir