Atölye › Pong › 21/26. adım

Yeniden oyna

Ne yapıyoruz

Yeni bir maç için her şeyi başa almalıyız: raketler yerine, skorlar sıfıra, durum "oynanıyor", ilk servis. Hepsini tek bir reset (sıfırla) fonksiyonunda topluyoruz. Maç bitince Boşluk onu çağıracak; oyun açılırken de bir kez çalışacak.

```js
let left
let right
let ball
let state // 'playing' or 'over'

function reset() {
  left = { x: 20, y: 160, score: 0 }
  right = { x: canvas.width - 20 - PADDLE_W, y: 160, score: 0 }
  state = 'playing'
  serve(1)
}

  if (event.key === ' ' && state === 'over') reset()

reset()
```

Ne işe yarıyor

Sıra sende

  1. let left = { ... } satırından let state = 'playing' ... satırına kadar olan dört satırı, değer vermeyen tanımlarla değiştir (let state // 'playing' or 'over').
  2. const keys = {} satırının altına bir boş satır bırakıp reset fonksiyonunu yaz.
  3. keydown dinleyicisinde keys[event.key] = true satırının altına Boşluk satırını yaz.
  4. En alttaki serve(1) satırını reset() yap.
  5. Çalıştır, bir maçı bitir ve Boşluk'a bas.

Beceriler: Oyun durumları, Fonksiyonlar

Tüm adımlar

  1. Canvas'ı ve kalemi al
  2. Siyah saha
  3. Filenin bir parçası
  4. Bütün file
  5. İki raket
  6. Çizen bir fonksiyon
  7. Oyun döngüsü
  8. Basılı tuşları hatırla
  9. Raketleri oynat
  10. Sahada kal
  11. Top
  12. Top hareket eder
  13. Üstten ve alttan sek
  14. Top rakete değiyor mu?
  15. Raketler geri vurur
  16. Yeniden servis
  17. Skoru tut
  18. Skoru göster
  19. Beşe ilk ulaşan
  20. Kim kazandı?
  21. Yeniden oyna
  22. Raketle nişan al
  23. Her vuruşta hızlan
  24. Bilgisayar rakip
  25. Tek ya da iki oyuncu
  26. Kendin yap: servis beklemesi