Atölye › Yılan › 9/28. adım
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)
}
```const SPEED = 150 → iki hareket arası bekleme: 150 milisaniye (1 saniye = 1000 ms). // sonrası bir
yorum: bilgisayar okumaz, insan için not.let last = 0 → en son ne zaman hareket ettik, onu hatırlar.function loop(time) → parantez içindeki time, tarayıcının verdiği şu anki zaman (ms).if (time - last >= SPEED) { → eğer son hareketten beri en az 150 ms geçtiyse, süslü parantez içini yap:last = time → "şimdi hareket ettim" diye not al.update() → hareket et.draw() if'in dışında: çizim yine her karede yapılır.const CELL = 20 satırının altına SPEED satırını yaz.let head = ... satırının altına let last = 0 yaz.loop fonksiyonunu kodda görüldüğü gibi değiştir: parantez içine time, update() çağrısı if'in içine.Beceriler: Oyun döngüsü
← Oyun döngüsü Gidilecek yön →