Atölye › Flappy tarzı kuş › 23/30. adım
Tekrar oynayabilmek için bütün durum bilgileri (kuş, borular, sayaç, skor, aşama) başlangıç hâline dönmeli. Bunları
tek bir fonksiyonda topluyoruz: reset (sıfırla). İlk oyun da aynı yoldan başlayacak.
Neden? İlk oyun bir koddan, onuncu oyun başka bir koddan başlarsa, er ya da geç farklı başlarlar ve bu hatayı bulmak çok zordur. Başlangıç hâli tek bir yerde yazılı olmalı. Ekran aynı kalacak.
```js
let bird
let pipes
let frame
let score
let state // 'ready', 'playing' or 'over'
function reset() {
bird = { x: 100, y: 300, vy: 0, r: 14 }
pipes = []
frame = 0
score = 0
state = 'ready'
}
reset()
requestAnimationFrame(loop)
```let bird, let pipes... → değişkenleri en üstte yalnız tanıtıyoruz (değer vermeden). Böyle bir değişken
şimdilik boştur; JavaScript buna undefined ("tanımsız") der. En üstte durmaları gerekir ki bütün fonksiyonlar
onları görebilsin.function reset() { ... } → beş bilginin başlangıç değerleri. Eskiden let satırlarında yazılı olan değerler
buraya taşındı.reset() ilk oyunu hazırlar, sonra döngü başlar. Sıra önemli: boş bir bird
ile çizmeye kalkarsak hata olur.let bird = ..., let pipes = [], let frame = 0, let score = 0 ve let state = ... satırlarını sil.let satırını ve altına, bir boş satırdan sonra, reset fonksiyonunu yaz.requestAnimationFrame(loop) satırının üstüne reset() yaz.Beceriler: Oyun durumları, Fonksiyonlar