Atölye › Yılan › 9/28. adım

Yavaşlat

Ne yapıyoruz

Kare çok hızlıydı, çünkü her karede hareket ediyordu. Çözüm: çizmeye her karede devam, ama hareket etmeyi yalnız 150 milisaniyede bir yap (saniyede ~6-7 adım).

Bunun için saati kullanacağız: tarayıcı loop'a her seferinde şu anki zamanı verir. Son hareketten bu yana 150 ms geçtiyse hareket ederiz.

```js
const SPEED = 150 // milliseconds between moves
let last = 0

function loop(time) {
  if (time - last >= SPEED) {
    last = time
    update()
  }
  draw()
  requestAnimationFrame(loop)
}
```

Ne işe yarıyor

Sıra sende

  1. const CELL = 20 satırının altına SPEED satırını yaz.
  2. let head = ... satırının altına let last = 0 yaz.
  3. loop fonksiyonunu kodda görüldüğü gibi değiştir: parantez içine time, update() çağrısı if'in içine.
  4. Çalıştır: kare artık sakin sakin sağa yürümeli (sonunda tahtadan çıkar; onu ileride düzelteceğiz).

Beceriler: Oyun döngüsü

Tüm adımlar

  1. Canvas'ı bul
  2. Kalemi al
  3. Tahtayı boya
  4. Hücrelerle düşün
  5. Yeri bir değişkende tut
  6. Çizen bir fonksiyon
  7. Hareket ettiren bir fonksiyon
  8. Oyun döngüsü
  9. Yavaşlat
  10. Gidilecek yön
  11. Ok tuşlarıyla yönlendir
  12. Listeden bir gövde
  13. Bütün gövdeyi yürüt
  14. Yeme bir yer seç
  15. Yemi çiz
  16. Ye ve büyü
  17. Yemi yılanın üstüne koyma
  18. Yön tablosu
  19. Geri dönüş yok
  20. Duvara çarpma
  21. Kendine çarpma
  22. Oyun bitti yazısı
  23. Skoru göster
  24. Oyunu başlatan tek fonksiyon
  25. Boşlukla yeniden oyna
  26. En iyi skoru hatırla
  27. Büyüdükçe hızlan
  28. Kendin yap: duvarlardan geç