Atölye › Tuğla Kırma › 2/39. adım
Şu an resim bir kez çiziliyor ve öyle kalıyor. Raket kıpırdasa bile ekran bunu göstermez. Oyunlar resmi saniyede yaklaşık 60 kez yeniden çizer; bir çizgi filmin kareleri gibi.
Çizim satırlarını draw (çiz) adlı bir fonksiyona koyacağız ve onu bir oyun döngüsünden sürekli
çağıracağız. Ekran yine aynı görünecek, ama artık her karede yeniden çiziliyor.
```js
function draw() {
ctx.fillStyle = '#0f172a'
ctx.fillRect(0, 0, canvas.width, canvas.height)
ctx.fillStyle = '#e2e8f0'
ctx.fillRect(paddle.x, PADDLE_Y, PADDLE_W, PADDLE_H)
}
function loop() {
draw()
requestAnimationFrame(loop)
}
requestAnimationFrame(loop)
```function draw() { ... } → dört çizim satırını draw adı altında toplar. Tanımlamak çalıştırmak değildir;
tarif yazılır, pişirilmez.function loop() { → döngünün bir turu: önce draw() ile çiz, sonra...requestAnimationFrame(loop) → tarayıcıya "ekranı bir sonraki yenileyişinden önce loop'u yine çalıştır" der.
loop kendi devamını istediği için döngü hiç durmaz.requestAnimationFrame(loop) → döngüyü başlatır. Burada loop parantezsiz yazılır: "şimdi
çalıştır" değil, "sırası gelince sen çalıştır" diyoruz.function draw() { yaz, satırları iki boşluk içeri al, altlarına } koy.loop fonksiyonunu, bir boş satır daha bırakıp en alta requestAnimationFrame(loop)
satırını yaz.Beceriler: Oyun döngüsü, Fonksiyonlar
← Oyun alanı ve raket Sayıyı sınırlar içinde tut →