Atölye › Candy Crush Tarzı Üçlü Eşleştirme › 18/29. adım
Düşen ve yeni gelen mücevherler kendiliğinden sıraya girebilir. Oyunun en güzel anı bu: zincirleme (cascade). Sen bir hamle yaparsın, tahta birkaç tur kendi kendine patlar.
Yeni bir evre ekliyoruz: 'falling' (düşüyor). collapse bittiğinde oyun bu evreye geçer; sonra update bakar:
yeni eşleşme var mı? Varsa yeniden silme evresi, yoksa 'idle'.
Zincirin her turu daha değerli: ilk silme mücevher başına 10, ikincisi 20, üçüncüsü 30 puan. Kaçıncı turda olduğumuzu
chain (zincir) sayar.
```js
let chain // how many clears in a row this move has caused
let phase // 'idle', 'clearing' (matched gems flash) or 'falling'
function trySwap(a, b) {
// ...
chain = 0
startClearing()
return true
}
function startClearing() {
matched = findMatches()
chain += 1
score += matched.size * 10 * chain // cascades are worth more and more
// ...
}
function collapse() {
// ...
phase = 'falling'
}
function update() {
// ...
if (phase === 'falling') {
// Landed: new matches make a cascade; otherwise the move is over.
if (findMatches().size > 0) startClearing()
else phase = 'idle'
}
}
```let chain → bu hamlenin kaçıncı silme turunda olduğumuz.phase yorumuna 'falling' ekleniyor.chain = 0 (trySwap) → her hamle zinciri sıfırdan başlatır.chain += 1 (startClearing) → her silme bir tur; * chain → ilk tur ×1, ikinci ×2, üçüncü ×3.phase = 'falling' (collapse'ın sonunda) → artık 'idle' değil: mücevherler "düştü", bakmamız gereken şey var.if (phase === 'falling') { (update) →findMatches().size > 0 → düşenler yeni eşleşme yaptıysa startClearing(): yeni bir tur.else phase = 'idle' → yapmadıysa hamle bitti.let phase satırının üstüne let chain ... yaz; let phase yorumunu koddaki gibi yap.trySwap içinde startClearing() satırının üstüne chain = 0 yaz.startClearing içinde matched = ... satırının altına chain += 1 yaz; puan satırını koddaki gibi yap.collapse'ın sonundaki phase = 'idle' satırını phase = 'falling' yap.update içinde 'clearing' bloğunun kapanan } satırının altına 'falling' bloğunu yaz.Beceriler: Oyun durumları
← Yanıp sön, dokunma Mücevher nereden geldi →