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

İç içe oturan balonlar

Ne yapıyoruz

Gerçek balonlar kutudaki bilyeler gibi sıkı dizilir: her iki satırdan biri yarım balon sağa kayar ve her balon, üstündeki iki balonun arasındaki çukura oturur. Buna altıgen ızgara denir; bal peteğindeki desen.

Izgaramız yine düz bir iki boyutlu dizi; değişen yalnız cellPos, yani geometri:

```js
const ROW_H = R * Math.sqrt(3) // rows overlap so the bubbles nest

const cols = (r) => (r % 2 === 0 ? COLS : COLS - 1)
const cellPos = (r, c) => ({ x: R + c * 2 * R + (r % 2) * R, y: TOP + R + r * ROW_H })

    for (let c = 0; c < cols(r); c++) grid[r].push(r < 5 ? Math.floor(Math.random() * COLORS.length) : -1)

    for (let c = 0; c < cols(r); c++) {
```

Ne işe yarıyor

Sıra sende

  1. const ROWS = 14 satırının altına ROW_H yaz.
  2. cellPos satırının üstüne cols satırını yaz; cellPos'u kodda görüldüğü gibi değiştir.
  3. reset ve draw içindeki c < COLS yazılarını c < cols(r) yap.
  4. Çalıştır: balonlar artık petek gibi iç içe oturuyor.

Beceriler: Diziler ve nesneler, Canvas üzerine çizim

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