Atölye › Flappy tarzı kuş › 23/30. adım

Temiz başlangıç fonksiyonu

Ne yapıyoruz

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)
```

Ne işe yarıyor

Sıra sende

  1. let bird = ..., let pipes = [], let frame = 0, let score = 0 ve let state = ... satırlarını sil.
  2. Yerine değersiz beş let satırını ve altına, bir boş satırdan sonra, reset fonksiyonunu yaz.
  3. Dosyanın en altında, requestAnimationFrame(loop) satırının üstüne reset() yaz.
  4. Çalıştır: oyun eskisi gibi çalışmalı.

Beceriler: Oyun durumları, Fonksiyonlar

Tüm adımlar

  1. Canvas'ı ve kalemi al
  2. Gökyüzünü boya
  3. Kuşu çiz
  4. Çizen bir fonksiyon
  5. Hareket ettiren bir fonksiyon
  6. Oyun döngüsü
  7. Yerçekimi
  8. Kanat çırpış
  9. Boşluk, yukarı ok ya da dokunuş
  10. İlk çırpışı bekle
  11. Yer ve gök
  12. Oyuncuya söyle
  13. Veri olarak boru
  14. Boruları çiz
  15. Kuş değil dünya kayar
  16. Rastgele yükseklikte yeni boru
  17. Her 90 karede bir boru
  18. Geçilen boruları sil
  19. Kuş borunun hizasında mı?
  20. Açıklıktan geç
  21. Her boruyu bir kez say
  22. Skoru göster
  23. Temiz başlangıç fonksiyonu
  24. Tekrar dene
  25. Oyunun bittiği tek yer
  26. Rekoru hatırla
  27. Rekoru göster
  28. Her ekranda aynı hız
  29. Aradan sonra telafi yok
  30. Kendin yap: madalya