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

Silmeden önce bekle

Ne yapıyoruz

Şimdi iki yarının arasına bekleme koyuyoruz. Oyunun o an ne yaptığını bir değişkende tutacağız: phase (evre).

Bir de her karede çalışan update (güncelle) fonksiyonu: evre 'clearing' ise sayacı bir azaltır, sıfıra inince collapse()'ı çağırır. Buna durum makinesi (state machine) denir: oyun her an bir evrededir ve her evrenin kendi işi vardır.

```js
let phase // 'idle' or 'clearing' (matched gems flash)
let timer

function reset() {
  // ...
  phase = 'idle'
}

function startClearing() {
  // ...
  phase = 'clearing'
  timer = 14
}

function collapse() {
  // ...
  phase = 'idle'
}

function update() {
  if (phase === 'clearing') {
    timer -= 1
    if (timer === 0) collapse()
    return
  }
}

function loop() {
  update()
  draw()
```

Ne işe yarıyor

Sıra sende

  1. let matched ... satırının üstüne let phase ... ve let timer yaz.
  2. reset içinde en sona phase = 'idle' yaz.
  3. startClearing içinde en sona phase = 'clearing' ve timer = 14 yaz.
  4. trySwap içindeki collapse() satırını sil.
  5. collapse içinde en sona, sütun döngüsünün kapanan } satırının altına phase = 'idle' yaz.
  6. function cellAt(event) { satırının üstüne update fonksiyonunu yaz; loop içinde draw()'un üstüne update() yaz.
  7. Çalıştır ve bir üçlü yap: mücevherler bir an durup sonra kaybolmalı.

Beceriler: Oyun durumları, Oyun döngüsü

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