Atölye › Candy Crush Tarzı Üçlü Eşleştirme › 19/29. adım

Mücevher nereden geldi

Ne yapıyoruz

Mücevherler hâlâ bir anda yerlerine ışınlanıyor. Düşmeyi göstermek için bir çizim hilesi kullanacağız: tahta verisi yine bir anda değişir, ama her mücevher yeni yerinin kaç piksel üstünden geldiğini hatırlar ve o kadar yukarıda çizilir.

Bunu drop (düşüş) adında, tahtayla aynı boyda ikinci bir tabloda tutuyoruz. İki satır düşen mücevher 96 (2 × 48) ile başlar; yeni gelen mücevherler tahtanın üstünden.

```js
let drop // drop[row][col]: how many pixels above its place a gem is still drawn

  drop = board.map((row) => row.map(() => 0))

      board[write][c] = board[r][c]
      drop[write][c] = (write - r) * SIZE
      write--
    }
    for (let r = write; r >= 0; r--) {
      board[r][c] = randomGem()
      drop[r][c] = (write + 1) * SIZE
    }

      ctx.arc(x + SIZE / 2, y + SIZE / 2 - drop[r][c], SIZE / 2 - 6, 0, Math.PI * 2)
```

Ne işe yarıyor

Sıra sende

  1. let matched ... satırının altına let drop ... yaz.
  2. reset içinde en sona drop = board.map(...) satırını yaz.
  3. collapse içinde board[write][c] = board[r][c] satırının altına ilk drop satırını yaz; yeni mücevher döngüsünü süslü paranteze alıp içine ikinci drop satırını yaz.
  4. draw içinde ctx.arc(...) satırında y + SIZE / 2 yerine y + SIZE / 2 - drop[r][c] yaz.
  5. Çalıştır ve bir üçlü yap.

Beceriler: Oyun durumları, Diziler ve nesneler

Tüm adımlar

  1. Tahtanın yeri
  2. Damalı ızgara
  3. Oyun döngüsü
  4. Rastgele mücevherli tahta
  5. Mücevherleri çiz
  6. Eşleşmesiz başla
  7. Bir mücevhere tıkla
  8. Seçimi göster
  9. İki komşuyu takas et
  10. Bütün eşleşmeleri bul
  11. Eşleşme yoksa takas yok
  12. Skor ve yeni başlangıç
  13. Eşleşeni sil
  14. Mücevherler düşsün
  15. Silmenin iki yarısı
  16. Silmeden önce bekle
  17. Yanıp sön, dokunma
  18. Zincirleme
  19. Mücevher nereden geldi
  20. Kayarak in
  21. Üstün altından çık
  22. Hiç hamle var mı?
  23. Asla sıkışma
  24. Beş saniye sonra ipucu
  25. İpucunu göster
  26. Yirmi hamle
  27. Oyunun sonu
  28. En iyi skoru hatırla
  29. Kendin yap: kaydırarak takas