Atölye › Candy Crush Tarzı Üçlü Eşleştirme › 24/29. adım
Aynı fonksiyon bir özellik daha veriyor: ipucu. Oyuncu beş saniye hiçbir şey yapmazsa olası bir hamleyi gösterelim.
Boşta geçen kareleri sayıyoruz: idleFor. 300 kare (saniyede 60 kare × 5) olunca hint = hasMove(). Bir hamle
yapılınca sayaç da ipucu da sıfırlanır. Bu adımda ipucunu yalnız hesaplıyoruz; çizimi bir sonraki adımda.
```js
let idleFor // frames since the last move
let hint // a possible move, shown after five idle seconds
function reset() {
// ...
idleFor = 0
hint = null
}
function trySwap(a, b) {
// ...
chain = 0
idleFor = 0
hint = null
startClearing()
function update() {
// ...
if (phase === 'falling') {
// ...
return
}
idleFor += 1
if (idleFor === 300) hint = hasMove()
}
```let idleFor, let hint → boş kare sayacı ve ipucu (bir hamle { a, b } ya da null).idleFor = 0, hint = null → reset'te ve trySwap'ta (her başarılı hamlede): sayaç ve ipucu sıfırlanır.return ('falling' bloğunun sonunda) → düşme evresindeyken alttaki satırlara gelme. Artık update'in sonuna
yalnız 'idle' evresinde gelinir.idleFor += 1 → her boş karede bir artır.if (idleFor === 300) hint = hasMove() → tam 300. karede bir hamle bul. === 300'de yalnız bir kez doğru olduğu
için 112 çifti her karede değil, bir kez deneriz.let drop ... satırının altına let idleFor ... ve let hint ... yaz.reset içinde en sona ve trySwap içinde chain = 0 satırının altına idleFor = 0 ve hint = null yaz.update içinde 'falling' bloğunun kapanan } satırının hemen üstüne (else { ... } bloğunun altına) return
yaz; fonksiyonun en sonuna iki idleFor satırını yaz.Beceriler: Oyun durumları, Oyun döngüsü
← Asla sıkışma İpucunu göster →